******************* 快速入门 ******************* æœ¬ç« å°†ä»‹ç»DS-PAWçš„å„ç§åŠŸèƒ½çš„åŸºæœ¬ä½¿ç”¨ï¼Œå…·ä½“åŒ…æ‹¬ï¼š **结构弛豫计算** 〠**自洽计算** 〠**能带(投影能带)计算** 〠**æ€å¯†åº¦ï¼ˆæŠ•å½±æ€å¯†åº¦ï¼‰è®¡ç®—** 〠**势函数计算** 〠**电å局域密度计算** 〠**部分电è·å¯†åº¦è®¡ç®—** 〠**æ‚化泛函计算** 〠**范德瓦尔斯修æ£è®¡ç®—** 〠**å¶æžä¿®æ£è®¡ç®—** 〠**DFT+U计算** 〠**背景电è·è®¡ç®—** 〠**光妿€§è´¨è®¡ç®—** 〠**频率计算** 〠**弹性常数计算** 〠**过渡æ€è®¡ç®—** 〠**声å谱计算** 〠**自旋轨é“耦åˆè®¡ç®—** 〠**分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿ** 〠**å¤–åŠ ç”µåœºè®¡ç®—** 〠**é“电计算** 〠**bader电è·è®¡ç®—** 〠**èƒ½å¸¦åæŠ˜å 计算** 〠**介电常数计算** 〠**åŽ‹ç”µå¼ é‡è®¡ç®—** 〠**固定基矢弛豫计算** 〠**声åçƒåЛ妿€§è´¨è®¡ç®—** 〠**solid state neb计算** 〠**溶剂化能计算** 〠**固定电势计算** 〠**wannieræ’值能带计算** ï¼›DS-PAWè½¯ä»¶çš„å‚æ•°å¤§è‡´å¯åˆ†ä¸ºä»¥ä¸‹å‡ 类:与物ç†ç»“æž„ç›¸å…³çš„å‚æ•°ã€ä¸Žè®¡ç®—æ€§è´¨ç›¸å…³çš„å‚æ•°ã€ä¸Žè®¡ç®—ç²¾åº¦ç›¸å…³çš„å‚æ•°ã€ä¸Žæ”¶æ•›ç›¸å…³çš„傿•°ï¼ŒåŸºæœ¬å‚数多有默认值。 æœ¬ç« ç›é€‰éƒ¨åˆ†å‚数进行介ç»ï¼Œå‚数列表åŠè¯¦æƒ…å¦è§ :doc:`/input-update` 部分 。 relax结构弛豫计算 =========================== 在密度泛函ç†è®ºï¼ˆDFT)ä¸ç»“构弛豫指的改å˜åˆå§‹çš„结构的晶胞åŠåŽŸåä½ç½®ä»Žè€Œä¼˜åŒ–得到总能é‡çš„局域最å°å€¼ã€‚ 通过结构弛豫计算,å¯ä»¥å‡å°‘在æ¯ä¸ªåŽŸå上的å—力,从而得到较为稳定的结构(一定程度上,å¯ä»¥é€šè¿‡è®¡ç®—声å谱或者频率æ¥éªŒè¯ç»“构的稳定性)。 使用建模软件æå»ºçš„结构一般原åå—力会比较大,且å³ä¾¿æ˜¯å…¶ä»–DFT软件优化过的结构,在å¦å¤–一个DFT计算软件ä¸åŽŸåå—力也ä¸ä¸€å®šæ˜¯æœ€å°çš„ï¼Œå› æ¤åœ¨è®¡ç®—æŸä¸ªç»“构的具体性质之å‰éœ€è¿›è¡Œç»“构弛豫计算。 :math:`Si` 原å结构弛豫输入文件 ---------------------------------- 输入文件包å«å‚数文件 :guilabel:`relax.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`relax.in` 如下: .. code-block:: :linenos: # task type task = relax #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 2 cal.smearing = 1 cal.ksamping = G cal.kpoints = [10, 10, 10] cal.cutoffFactor = 1.5 #relax related relax.max = 60 relax.freedom = atom relax.convergenceType = force relax.convergence = 0.05 relax.methods = CG io.wave = false io.charge = false :guilabel:`relax.in` 文件大致å¯ä»¥åˆ†ä¸º4éƒ¨åˆ†å‚æ•°ï¼š **第一部分指定计算类型,由task傿•°æŽ§åˆ¶ï¼š** * ``task`` :设置计算类型,本次计算为relaxå³ç»“构弛豫; **ç¬¬äºŒéƒ¨åˆ†æŒ‡å®šç³»ç»Ÿç›¸å…³å‚æ•°ï¼Œç³»ç»Ÿç›¸å…³å‚数以sys.å¼€å¤´ï¼Œä¸€èˆ¬æ˜¯ä¸€äº›ä¸Žä½“ç³»çš„ç»“æž„ã€æ³›å‡½ã€ç£æ€§ã€å¯¹ç§°æ€§ç›¸å…³çš„傿•°ï¼š** - ``sys.structure`` :指定体系的结构文件,DS-PAWæ”¯æŒ :guilabel:`.as` å’Œ :guilabel:`.h5` çš„ç»“æž„æ–‡ä»¶æ ¼å¼ï¼ˆæ—©æœŸjsonæ–‡ä»¶å¯æ”¯æŒä½†ä¸å»ºè®®ç”¨æˆ·ä½¿ç”¨ï¼ŒåŽç»DS-PAWå‘布版本将会完全摒弃jsonæ ¼å¼çš„输出), :guilabel:`.as` 文件å¯ä½¿ç”¨Device Studio软件直接生æˆï¼Œä¹Ÿå¯æ‰‹åŠ¨æž„é€ ï¼› - ``sys.symmetry`` :设置DS-PAW计算时是å¦éœ€è¦ä½¿ç”¨å¯¹ç§°æ€§ï¼› - ``sys.functional`` :设置泛函,目å‰ç¨‹åºæ”¯æŒ **LDA** 〠**PBE** åŠå¤šç§ä¿®æ£æ³›å‡½ï¼› - ``sys.spin`` ï¼šè®¾ç½®ä½“ç³»çš„ç£æ€§ï¼Œç”±äºŽ **Si** æ²¡æœ‰ç£æ€§ï¼Œå› æ¤å°†sys.spin设置为 **none** ï¼› **ç¬¬ä¸‰éƒ¨åˆ†æŒ‡å®šè®¡ç®—ç›¸å…³çš„å‚æ•°ï¼Œè¿™ç±»å‚数以cal.开头:** - ``cal.methods``: è®¾ç½®è‡ªæ´½ç”µåæ¥ä¼˜åŒ–æ–¹æ³•ï¼Œ2表示使用 **Residual minimization** 方法; - ``cal.smearing`` :设置æ¯ä¸ªæ³¢å‡½æ•°çš„éƒ¨åˆ†å æœ‰æ•°æ–¹æ³•,1表示使用 **Gaussian smearing** 方法; - ``cal.ksamping`` :自动生æˆå¸ƒé‡Œæ¸ŠåŒº **k点** ç½‘æ ¼æ–¹æ³•ï¼ŒG表示使用 **Gamma centered** 方法; - ``cal.kpoints`` : 设置布里渊区 **k点** ç½‘æ ¼å–æ ·å¤§å°ï¼Œä¸€èˆ¬K点的大å°éœ€è¦æ ¹æ®ä½“ç³»æ™¶æ ¼çš„å¤§å°å’Œä½“系的周期性æ¥è®¾ç½®ï¼› **ç¬¬å››éƒ¨åˆ†æŒ‡å®šç»“æž„å¼›è±«ç›¸å…³å‚æ•°ï¼Œä¾‹å¦‚结构弛豫的方法ã€ç»“构弛豫的类型ã€ç»“构弛豫的精度ç‰ç›¸å…³å‚数,结构弛豫指的是优化原åä½ç½®å¾—到总能é‡çš„局域最å°å€¼çš„ç»“æž„ï¼Œä¸€èˆ¬ä¹Ÿç§°ä¹‹ä¸ºç¦»åæ¥ä¼˜åŒ–ï¼›** - ``relax.max``ï¼šè®¾ç½®ç»“æž„é©°è±«æ—¶ï¼Œæœ€å¤§çš„ç¦»åæ¥æ¥æ•°ï¼› - ``relax.freedom`` :设置结构驰豫的自由度,atom表示åªå¼›è±«åŽŸåä½ç½®ï¼›å¦æœ‰å¯é€‰å€¼volume表示åªå¼›è±«æ™¶æ ¼ä½“积;all表示弛豫弛豫原åä½ç½®ã€æ™¶èƒžå½¢çŠ¶å’Œä½“ç§¯ï¼› - ``relax.convergenceType`` : 设置结构弛豫收敛的判æ®ç±»åž‹ï¼Œforce表示以原åå—力作为判æ®ï¼Œå¦æœ‰å¯é€‰å€¼energyï¼› - ``relax.convergence`` :设置结构驰豫时,原åå—力的收敛精度大å°ï¼› - ``relax.methods`` :设置结构驰豫的方法,CGè¡¨ç¤ºå…±è½æ¢¯åº¦æ³•ï¼› :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 2 Lattice 0.00 2.75 2.75 2.75 0.00 2.75 2.75 2.75 0.00 Direct Si -0.115000000 -0.125000000 -0.125000000 Si 0.125000000 0.125000000 0.125000000 :guilabel:`structure.as` æ–‡ä»¶ç»“æž„å›ºå®šï¼Œå¿…é¡»ä¸¥æ ¼å¯¹ç…§æ¯ä¸€è¡Œå†™å…¥ç›¸åº”ä¿¡æ¯: - 第一行为固定æç¤ºè¡Œ - 第二行为总的原å个数 - 第三行为固定æç¤ºè¡Œ - 第四至å…è¡Œä¸ºæ™¶èƒžä¿¡æ¯ - 第七行为原ååæ ‡çš„å½¢å¼ï¼Œå¯é€‰å€¼ä¸º **Direct** å’Œ **Cartesian** ï¼ˆå…¨æ‹¼ä¸”é¦–å—æ¯å¿…须为大写) - 第八行开始写入原ååæ ‡ä¿¡æ¯ï¼Œæ¯ä¸€è¡Œçš„å¼€å¤´å¿…é¡»æ ‡æ³¨åæ ‡æ‰€æè¿°çš„原åçš„åç§° 为展示结构弛豫å‰åŽç»“构的å˜åŒ–,æ¤ä¾‹æ‰‹åŠ¨å°†ç¬¬ä¸€ä¸ªSi原å在xæ–¹å‘çš„åæ ‡ä»Ž **-0.125** 改为 **-0.115** 。 .. note:: 1. **如果想è¦å›ºå®šåŽŸå,则在第7è¡ŒåŠ å…¥Fix_x Fix_y Fix_zæ ‡ç¾ï¼Œç„¶åŽåœ¨æ¯ä¸ªåŽŸå对应的ä½ç½®åŠ å…¥F或T,F表示ä¸å›ºå®šï¼ŒT表示固定。** .. code-block:: :linenos: Direct Fix_x Fix_y Fix_z Si -0.115000000 -0.125000000 -0.125000000 F F F Si 0.125000000 0.125000000 0.125000000 T T T run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`relax.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°å®‰è£…äº†DS-PAW的环境上,这里将以linux环境为例å进行介ç»ï¼› åœ¨æ— å›¾å½¢ç•Œé¢çš„linux环境下è¿è¡Œè½¯ä»¶çš„æ–¹å¼ä¸Žåœ¨windows的环境下è¿è¡Œç¨‹åºä¼šæœ‰å¾ˆå¤§çš„区别,在linux下需è¦é€šè¿‡å‘½ä»¤è¡Œçš„æ–¹å¼æ¥è¿è¡Œç¨‹åºï¼› 一般情况下需è¦å…ˆåŠ è½½ä¸€ä¸‹çŽ¯å¢ƒå˜é‡ï¼Œé€šå¸¸ä¼šå°†éœ€è¦ç”¨çš„环境å˜é‡å†™å…¥æ–‡æœ¬æˆ–者 **~/.bashrc** ,通过 **source** 的命令æ¥åŠ è½½çŽ¯å¢ƒï¼› çŽ¯å¢ƒåŠ è½½å®Œæˆä¹‹åŽï¼Œè¿è¡Œ :guilabel:`DS-PAW relax.in` ï¼Œæ¤æ—¶ä½¿ç”¨å•机版的DS-PAW进行计算;如需并行计算则需è¿è¡Œ :guilabel:`DS-PAW -mpi mpirun -mpiargs "-n 2" relax.in` ,**-mpi** 指定mpirunçš„å称, **-mpiargs** 指定mpirunåŽé¢çš„傿•°ã€‚命令介ç»è§ç¬¬ä¸€èŠ‚ :doc:`/introduction` 部分。 使用排队系统(例如PBSã€slurmç‰ï¼‰æäº¤ä»»åŠ¡éœ€å…ˆé…置相应的 ``.pbs`` 或 ``.slurm`` 脚本,使用 :guilabel:`qsub DS-PAW.pbs` 或 :guilabel:`sbatch DS-PAW.slurm` æäº¤ä»»åŠ¡å³å¯ã€‚ analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`relax.h5` 〠:guilabel:`latestStructure.as` ç‰è¾“出文件: - :guilabel:`DS-PAW.log` :DS-PAW计算之åŽå¾—到的日志文件; - :guilabel:`relax.h5` :弛豫计算对应的h5输出文件,结构解æžè§ :doc:`/output-hdf5` 部分,DS-PAWå¯è¯»å–该h5文件进行ç»ç®—ï¼› - :guilabel:`latestStructure.as` :弛豫终点的as结构文件,å¯ç›´æŽ¥æŸ¥çœ‹æ•°æ®ï¼› å°† :guilabel:`latestStructure.as` æ‹–å…¥Device Studio查看结构如下所示: .. figure:: ../imgs/1-0.png :align: center :width: 200px | 查看 :guilabel:`latestStructure.as` 文件,å¯å¾—弛豫结æŸåŽçš„æ™¶èƒžä¿¡æ¯å¦‚下: .. code-block:: :linenos: Total number of atoms 2 Lattice 0.0000000000000000 2.7500000000000000 2.7500000000000000 2.7500000000000000 0.0000000000000000 2.7500000000000000 2.7500000000000000 2.7500000000000000 0.0000000000000000 Direct Si 0.8801735223171917 0.8748246492235915 0.8748246492235915 Si 0.1298264776828063 0.1251753507764085 0.1251753507764085 本次结构弛豫计算进行了3ä¸ªç¦»åæ¥çš„è®¡ç®—ï¼Œå¼›è±«ç»“æŸçš„æž„åž‹ä¸ï¼Œæ‰‹åŠ¨ç§»åŠ¨çš„ç¬¬ä¸€ä¸ªSi原å在xæ–¹å‘ä¸Šçš„åæ ‡åœ¨å¼›è±«è®¡ç®—之åŽå®Œæˆæ ¡æ£ã€‚ .. note:: 1. **啿œºç‰ˆDS-PAWè¿è¡Œå‘½ä»¤ä¸ºè½¯ä»¶å+输入文件åï¼Œå¦‚æžœä½ çš„è¾“å…¥æ–‡ä»¶å为abc.in那么åªè¦æ‰§è¡ŒDS-PAW abc.inå³å¯ã€‚** 2. **该弛豫计算的收敛判æ®é€‰å–为原åå—力,若以能é‡ä½œä¸ºæ”¶æ•›åˆ¤æ®ï¼Œå¯ä»¥è®¾ç½®relax.covergenceType = energy。** | | scf自洽计算 ========================================================================== 自洽计算能得到特定晶体的电è·å¯†åº¦å’Œæ³¢å‡½æ•°æ–‡ä»¶ï¼Œç”µè·å¯†åº¦æ–‡ä»¶ç”¨äºŽåŽç»è®¡ç®—è¯¥ä½“ç³»çš„èƒ½å¸¦ã€æ€å¯†åº¦ç‰ç”µå结构性质。 ç‰¹åˆ«éœ€è¦æ³¨æ„æ˜¯ï¼šè‡ªæ´½ä¸Žèƒ½å¸¦ã€æ€å¯†åº¦ç‰ç”µå结构性质计算是有先åŽé¡ºåºçš„,必须先进行自洽计算得到电è·å¯†åº¦æ‰èƒ½è¿›ä¸€æ¥è®¡ç®—èƒ½å¸¦ã€æ€å¯†åº¦ç‰ç”µå结构性质。 :math:`Si` 原å自洽计算之准备输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`scf.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 如下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 2 cal.smearing = 1 cal.ksamping = G cal.kpoints = [10, 10, 10] cal.cutoffFactor = 1.5 #outputs io.charge = true io.wave = true :guilabel:`scf.in` è¾“å…¥è‡ªæ´½ç›¸å…³å‚æ•°ä»‹ç»ï¼š - ``task`` ï¼šè®¾ç½®è®¡ç®—ç±»åž‹ï¼Œæ¤æ¬¡è®¡ç®—为 **scf** 自洽计算; - ``cal.cutoffFactor`` :设置 ``cal.cutoff`` 的系数,计算采用的截æ–能大å°ç‰äºŽ ``cal.cutoff`` * ``cal.cutoffFactor`` ï¼› - ``io.charge`` :控制电è·å¯†åº¦æ–‡ä»¶è¾“出的开关; - ``io.wave`` :控制波函数文件输出的开关; :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 2 Lattice 0.00 2.75 2.75 2.75 0.00 2.75 2.75 2.75 0.00 Direct Si -0.125000000 -0.125000000 -0.125000000 Si 0.125000000 0.125000000 0.125000000 常规自洽计算会选å–ç»“æž„å¼›è±«å¾—åˆ°çš„ç¨³æ€æž„型作为结构输入; .. note:: 1. **在结构弛豫和自洽计算ä¸å¯ä¿å˜elfã€potential的数æ®ï¼Œåªéœ€è¦å°†io.elfå’Œio.potential设置为trueå³å¯ï¼›** 2. **è®¡ç®—æ—¶å¦‚éœ€ç»™ä½“ç³»æ·»åŠ èƒŒæ™¯ç”µè·ï¼Œå¯ç›´æŽ¥è®¾ç½®sys.electron傿•°ï¼Œè¯¥å‚数指定价电å的总数。** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件 :guilabel:`scf.in` å’Œ :guilabel:`structure.as` åŽï¼Œå°†æ–‡ä»¶ä¸Šä¼ 到æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW scf.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå¯å¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` 〠:guilabel:`rho.bin` 〠:guilabel:`wave.bin` 〠:guilabel:`rho.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW计算之åŽå¾—到的日志文件,记录自洽计算ä¸èƒ½é‡è¿ä»£ç‰ä¸»è¦ä¿¡æ¯ï¼› - :guilabel:`scf.h5` :自洽计算对应的h5输出文件,结构解æžè§ :doc:`/output-hdf5` 部分; - :guilabel:`rho.bin` :电è·å¯†åº¦çš„二进制文件,用于åŽç»çš„åŽå¤„ç†è®¡ç®—ï¼› - :guilabel:`rho.h5` :电è·å¯†åº¦çš„ **h5** æ ¼å¼æ–‡ä»¶ï¼Œå¯ç®€å•è½¬æ¢æˆVESTA能读å–çš„æ ¼å¼ï¼ˆè§ :doc:`/tools` ),从而将电è·å¯†åº¦ä¿¡æ¯å¯è§†åŒ–ï¼› - :guilabel:`wave.bin` :波函数的二进制文件,用于åŽç»è®¡ç®—ï¼› å¯é€šè¿‡python脚本将 :guilabel:`rho.h5` æ–‡ä»¶è½¬æˆ *VESTA* 软件支æŒçš„æ ¼å¼ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†å¯å¾—一维ã€äºŒç»´ã€ä¸‰ç»´ç”µè·å¯†åº¦å›¾ï¼Œå…¶ä¸ä¸‰ç»´å›¾æ•ˆæžœåº”如下所示: .. figure:: ../imgs/phase2/scf-rho.png :align: center :width: 300px | | band能带计算 ========================================================================== æ™®é€šèƒ½å¸¦è®¡ç®—æœ‰ä¸¤ç§æ–¹å¼å¯å®Œæˆï¼Œtask=band çš„ä¸¤æ¥æ³•åŠ task=scf çš„ä¸€æ¥æ³•。æ¤èЂ以Si体系为例,介ç»ä¸¤ç§æ–¹æ³•ä¸‹å¯¹åº”çš„å‚æ•°è®¾ç½®ã€‚ :math:`Si` 体系能带计算输入文件 ------------------------------------------------------ task = band 两æ¥ç®— ****************************************************** 输入文件包å«å‚数文件 :guilabel:`scf.in` å’Œ :guilabel:`band.in` ,结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 设置与上节自洽计算一致,:guilabel:`band.in` 傿•°å¦‚下: .. code-block:: :linenos: # task type task = band #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none cal.iniCharge = ./rho.bin cal.methods = 2 cal.smearing = 1 cal.cutoffFactor = 1.5 cal.totalBands = 12 #band related band.kpointsLabel= [G,X,W,K,G,L] band.kpointsCoord= [0, 0, 0, 0.5, 0, 0.5, 0.5, 0.25, 0.75, 0.375, 0.375, 0.75, 0, 0, 0, 0.5, 0.5, 0.5] band.kpointsNumber= [30, 30, 30, 30, 30] :guilabel:`band.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在能带计算ä¸å¯ä»¥å°½é‡ä¿ç•™ **sys.** å’Œ **cal.** çš„å‚æ•°åˆ° :guilabel:`band.in` ä¸ï¼Œä¹‹åŽè®¾ç½®èƒ½å¸¦è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``task`` :设置计算类型,本次计算为band能带计算; - ``cal.iniCharge`` :设置电è·å¯†åº¦æ–‡ä»¶çš„路径,支æŒç»å¯¹è·¯å¾„åŠç›¸å¯¹è·¯å¾„,这里./表示当å‰è·¯å¾„下的 :guilabel:`rho.bin` 文件; èƒ½å¸¦è®¡ç®—ä¸æ–°å¢žäº†ä¸€éƒ¨åˆ†èƒ½å¸¦ç›¸å…³çš„傿•°ï¼Œè¿™äº›å‚æ•°åªåœ¨èƒ½å¸¦è®¡ç®—ä¸èµ·ä½œç”¨ï¼š - ``band.kpointsLabel`` ï¼šè®¾ç½®èƒ½å¸¦è®¡ç®—æ—¶é«˜å¯¹ç§°ç‚¹æ ‡ç¾ï¼Œä¸€ä¸ª ``band.kpointsCoord`` 对应一个 ``band.kpointsLabel`` ï¼› - ``band.kpointsCoord`` ï¼šè®¾ç½®èƒ½å¸¦è®¡ç®—æ—¶é«˜å¯¹ç§°ç‚¹çš„åˆ†æ•°åæ ‡ï¼Œæ¯ä¸‰ä¸ªæ•°ä¸ºä¸€ç»„ï¼› - ``band.kpointsNumber`` :设置æ¯ç›¸é‚»ä¸¤ä¸ªé«˜å¯¹ç§°ç‚¹é—´çš„k点个数,有两ç§å†™æ³•: - å½“è®¾ç½®å‚æ•°ä¸º band.kpointsNumber= [30, 30, 30, 30, 30] 时,所有高对称点之间撒点数å‡ä¸º30ï¼› - å½“è®¾ç½®å‚æ•°ä¸º band.kpointsNumber= [30] 时,高对称点G与X之间撒点数为30ï¼Œä»¥æ¤æ±‚得撒点密度;对高对称点X与Wã€W与Kã€K与Gã€G与L之间进行ç‰å¯†åº¦æ’’点,实际撒点数å¯ä»ŽDS-PAW.logçš„å‚æ•°æ‰“å°éƒ¨åˆ†èŽ·å–ï¼› - ``band.EfShift`` :决定是å¦è¯»å–rho.binä¸çš„EFermi作为band计算输出ä¸çš„EFermi。默认为true,表示从rho.bin读å–EFermi。 :guilabel:`structure.as` 文件åŒè‡ªæ´½è®¡ç®—。(è§2.2节) .. note:: 1. **两æ¥ç®—时,scf.in å’Œ band.in ä¸å‚æ•° cal.cutoffFactoråŠcal.cutoff å¿…é¡»ä¿æŒä¸€è‡´ï¼Œå¦åˆ™ä¼šå‡ºçŽ°æ ¼ç‚¹æ•°æ®ä¸åŒ¹é…的问题。** 2. **cal.iniCharge指定自洽计算生æˆçš„电è·å¯†åº¦æ–‡ä»¶ rho.bin 所在路径。** task = scf 一æ¥ç®— ****************************************************** 输入文件包å«å‚数文件 :guilabel:`scf.in` ,结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 傿•°å¦‚下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 2 cal.totalBands = 12 cal.smearing = 1 cal.ksamping = G cal.kpoints = [10, 10, 10] cal.cutoffFactor = 1.5 #outputs io.charge = true io.wave = true #band related io.band=true band.kpointsLabel= [G,X,W,K,G,L] band.kpointsCoord= [0, 0, 0, 0.5, 0, 0.5, 0.5, 0.25, 0.75, 0.375, 0.375, 0.75, 0, 0, 0, 0.5, 0.5, 0.5] band.kpointsNumber= [30, 30, 30, 30, 30] .. note:: 1. 能带一æ¥ç®—对应结果文件为 scf.h5 ï¼Œæ¤æ—¶èƒ½å¸¦æ•°æ®å˜å‚¨åœ¨ scf.h5 文件ä¸ï¼Œå¯ç›´æŽ¥è°ƒç”¨ :doc:`/tools` çš„ bandplot.py è„šæœ¬å¤„ç† scf.h5 文件。 2. **io.band=true åªåœ¨ task=scf 时生效。** 3. **当io.band生效时,ä¸å†éœ€è¦è®¾ç½®cal.iniCharge = ./rho.bin,对K空间高对称点的求解将在scfè®¡ç®—æ—¶åŒæ¥å®Œæˆã€‚** 4. **scf.in文件ä¸éœ€ç»™å‡ºä¸¤ç±»k点,cal.kpoints给出自洽计算的k点,band.kpointsç›¸å…³å‚æ•°ç»™å‡ºèƒ½å¸¦è®¡ç®—çš„k点,两部分k点缺一ä¸å¯ã€‚** run程åºè¿è¡Œ ------------------------------------------------------ 以两æ¥ç®—ä¸ºä¾‹ï¼Œå°†å‚æ•°æŽ§åˆ¶æ–‡ä»¶ :guilabel:`scf.in` 〠:guilabel:`band.in` 和结构文件 :guilabel:`structure.as` ä¸Šä¼ åˆ°æœåŠ¡å™¨ï¼ŒæŒ‰ç…§ç»“æž„å¼›è±«ä¸ä»‹ç»çš„æ–¹æ³•便¬¡æ‰§è¡Œ :guilabel:`DS-PAW scf.in` 〠:guilabel:`DS-PAW band.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` 〠:guilabel:`band.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW能带计算之åŽå¾—到的日志文件,å¯ç›´æŽ¥è¯»å–带隙ã€VBMã€CBMç‰é‡è¦ä¿¡æ¯ï¼› - :guilabel:`band.h5` :能带计算对应的 **h5** 输出文件;ä¿å˜èƒ½é‡æœ¬å¾å€¼ç‰é‡è¦æ•°æ®ï¼Œå…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ **python** 对 :guilabel:`band.h5` 进行数æ®å¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†å¾—到的能带图效果应如下所示: .. figure:: ./../imgs/phase2/band.png :align: center :width: 400px | .. note:: 1. **èƒ½å¸¦è®¡ç®—ä¸€æ¥æ³•å’Œä¸¤æ¥æ³•得到的能带图效果一致。** | | pband投影能带计算 ========================================================================== 投影能带是指在能带计算过程ä¸å°†æ¯æ¡èƒ½å¸¦æ¯ä¸ªK点上的能é‡å±•开为æ¯ä¸ªåŽŸååŠå…¶è½¨é“的贡献。 :math:`Si` 投影能带计算输入文件 ------------------------------------------------------ 投影能带的输入文件包å«å‚数文件 :guilabel:`pw_band.in` 结构文件 :guilabel:`structure.as` 和自洽计算得到的二进制电è·å¯†åº¦æ–‡ä»¶ :guilabel:`rho.bin` , :guilabel:`pw_band.in` 如下: .. code-block:: :linenos: # task type task = band #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none cal.iniCharge = ./rho.bin cal.methods = 2 cal.smearing = 1 cal.cutoffFactor = 1.5 cal.totalBands = 12 #band related band.kpointsLabel= [G,X,W,K,G,L] band.kpointsCoord= [0, 0, 0, 0.5, 0, 0.5, 0.5, 0.25, 0.75, 0.375, 0.375, 0.75, 0, 0, 0, 0.5, 0.5, 0.5] band.kpointsNumber= [30, 30, 30, 30, 30] band.project=true :guilabel:`pw_band.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š æŠ•å½±èƒ½å¸¦è®¡ç®—ä¸Žæ™®é€šèƒ½å¸¦çš„åŒºåˆ«åœ¨äºŽåœ¨è®¡ç®—å‚æ•°ä¸è®¾ç½®äº† ``band.project`` 傿•°: ``band.project`` ï¼šæŽ§åˆ¶èƒ½å¸¦è®¡ç®—ä¸æŠ•å½±è®¡ç®—çš„å¼€å…³ï¼› run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件 :guilabel:`pw_band.in` å’Œ :guilabel:`structure.as` ä»¥åŠ :guilabel:`rho.bin` 之åŽï¼Œå°†æ–‡ä»¶ä¸Šä¼ 到æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW pw_band.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`band.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW能带计算之åŽå¾—到的日志文件; - :guilabel:`band.h5` :能带计算对应的 **h5** è¾“å‡ºæ–‡ä»¶ï¼Œæ¤æ—¶æŠ•影能带的数æ®ä¹Ÿå°†ä¼šè¢«ä¿å˜åœ¨ :guilabel:`band.h5` ä¸ï¼Œå…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ **python** 对 :guilabel:`band.h5` 进行数æ®å¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†å¾—到的能带图效果应如下所示: .. figure:: ./../imgs/phase2/projected-band.png :align: center :width: 500px | | dosæ€å¯†åº¦è®¡ç®— ========================================================================== æ€å¯†åº¦è®¡ç®—æœ‰ä¸¤ç§æ–¹å¼å¯å®Œæˆï¼Œtask=dos çš„ä¸¤æ¥æ³•åŠ task=scf çš„ä¸€æ¥æ³•。æ¤èЂ以Si体系为例,介ç»ä¸¤ç§æ–¹æ³•ä¸‹å¯¹åº”çš„å‚æ•°è®¾ç½®ã€‚ :math:`Si` 体系æ€å¯†åº¦è®¡ç®—输入文件 ------------------------------------------------------ task = dos 两æ¥ç®— ****************************************************** 输入文件包å«å‚数文件 :guilabel:`scf.in` 〠:guilabel:`dos.in` åŠç»“构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 设置与自洽计算一致,:guilabel:`dos.in` 傿•°å¦‚下: .. code-block:: :linenos: # task type task = dos #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none cal.iniCharge = ./rho.bin cal.methods = 2 cal.smearing = 4 cal.ksamping = G cal.kpoints = [20, 20, 20] cal.cutoffFactor = 1.5 #dos related dos.range=[-10, 10] dos.resolution=0.05 :guilabel:`dos.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在æ€å¯†åº¦è®¡ç®—ä¸å¯ä»¥å°½é‡ä¿ç•™ **sys.** å’Œ **cal.** çš„å‚æ•°åˆ° :guilabel:`dos.in` ä¸ï¼Œä¹‹åŽè®¾ç½®æ€å¯†åº¦è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``task`` :设置计算类型,本次计算为dosæ€å¯†åº¦è®¡ç®—ï¼› - ``cal.iniCharge`` :设置电è·å¯†åº¦çš„读å–路径,支æŒç»å¯¹è·¯å¾„åŠç›¸å¯¹è·¯å¾„,这里./表示当å‰è·¯å¾„下的 :guilabel:`rho.bin` 文件; - ``cal.kpoints`` :设置kç‚¹ç½‘æ ¼å¯†åº¦ï¼Œæ€å¯†åº¦è®¡ç®—æ—¶k点建议增大到自洽计算的两å€å·¦å³ï¼› æ€å¯†åº¦è®¡ç®—䏿–°å¢žäº†ä¸€éƒ¨åˆ†æ€å¯†åº¦ç›¸å…³çš„傿•°ï¼Œè¿™äº›å‚æ•°åªåœ¨æ€å¯†åº¦è®¡ç®—ä¸èµ·ä½œç”¨ï¼š - ``dos.range`` :设置æ€å¯†åº¦è®¡ç®—时能é‡çš„区间; - ``dos.resolution`` :设置æ€å¯†åº¦è®¡ç®—能é‡é—´éš”精度,æ€å¯†åº¦è®¡ç®—的点数å³ä¸º **dos.range** 的差值与 **dos.resolution** 的比值+1ï¼› :guilabel:`structure.as` 文件åŒè‡ªæ´½è®¡ç®—。(è§2.2节) .. note:: 1. **两æ¥ç®—时,scf.in å’Œ dos.in ä¸å‚æ•° cal.cutoffFactoråŠcal.cutoff å¿…é¡»ä¿æŒä¸€è‡´ï¼Œå¦åˆ™ä¼šå‡ºçŽ°æ ¼ç‚¹æ•°æ®ä¸åŒ¹é…的问题。** task = scf 一æ¥ç®— ****************************************************** 输入文件包å«å‚数文件 :guilabel:`scf.in` ,结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 傿•°å¦‚下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 2 cal.smearing = 4 cal.ksamping = G cal.kpoints = [10, 10, 10] cal.cutoffFactor = 1.5 #outputs io.charge = true io.wave = true #dos related io.dos=true dos.range=[-10, 10] dos.resolution=0.05 .. note:: 1. æ€å¯†åº¦ä¸€æ¥ç®—对应结果文件为 scf.h5 ï¼Œæ¤æ—¶æ€å¯†åº¦æ•°æ®å˜å‚¨åœ¨ scf.h5 文件ä¸ï¼Œå¯ç›´æŽ¥è°ƒç”¨ :doc:`/tools` çš„ dosplot.py è„šæœ¬å¤„ç† scf.h5 文件。 2. **io.dos=true åªåœ¨ task=scf 时生效。** 3. **当io.dos生效时,ä¸å†éœ€è¦è®¾ç½®cal.iniCharge = ./rho.binï¼Œæ¤æ—¶é€šè¿‡è‡ªæ´½è®¡ç®—获得DOS。** run程åºè¿è¡Œ ------------------------------------------------------ 以两æ¥ç®—ä¸ºä¾‹ï¼Œå°†å‚æ•°æŽ§åˆ¶æ–‡ä»¶ :guilabel:`scf.in` 〠:guilabel:`dos.in` 和结构文件 :guilabel:`structure.as` ä¸Šä¼ åˆ°æœåŠ¡å™¨ï¼ŒæŒ‰ç…§ç»“æž„å¼›è±«ä¸ä»‹ç»çš„æ–¹æ³•便¬¡æ‰§è¡Œ :guilabel:`DS-PAW scf.in` 〠:guilabel:`DS-PAW dos.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` ã€:guilabel:`scf.h5` 〠:guilabel:`dos.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAWæ€å¯†åº¦è®¡ç®—之åŽå¾—到的日志文件; - :guilabel:`dos.h5` :æ€å¯†åº¦è®¡ç®—对应的h5æ–‡ä»¶ï¼Œå…·ä½“ç»“æž„è§ :doc:`/output-hdf5` 部分 ï¼› å¯ä½¿ç”¨ **python** 对 :guilabel:`dos.h5` 进行数æ®å¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†å¾—到的æ€å¯†åº¦å›¾æ•ˆæžœåº”如下所示: .. figure:: ./../imgs/phase2/dos.png :height: 650px :align: center | | pdos投影æ€å¯†åº¦è®¡ç®— ========================================================================== 投影æ€å¯†åº¦çš„计算是指在æ€å¯†åº¦è®¡ç®—过程ä¸å°†æ€æ¯ä¸ªèƒ½é‡ä¸‹çš„æ€å¯†åº¦å±•å¼€ä¸ºæ¯ä¸ªåŽŸååŠå…¶è½¨é“çš„æ€å¯†åº¦è´¡çŒ®ã€‚ :math:`Si` 投影æ€å¯†åº¦è®¡ç®—输入文件 ------------------------------------------------------ 投影æ€å¯†åº¦çš„输入文件包å«å‚数文件 :guilabel:`pdos.in` 结构文件 :guilabel:`structure.as` 和自洽计算得到的电è·å¯†åº¦æ–‡ä»¶ :guilabel:`rho.bin` , :guilabel:`pdos.in` 如下: .. code-block:: :linenos: # task type task = dos #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none cal.iniCharge = ./rho.bin cal.methods = 2 cal.smearing = 4 cal.ksamping = G cal.kpoints = [20, 20, 20] cal.cutoffFactor = 1.5 #dos related dos.range=[-10, 10] dos.resolution=0.05 dos.project = true :guilabel:`pdos.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 投影æ€å¯†åº¦ä¸Žæ™®é€šæ€å¯†åº¦çš„åŒºåˆ«åœ¨äºŽåœ¨è®¡ç®—å‚æ•°ä¸è®¾ç½®äº† ``dos.project`` 傿•°ï¼š - ``dos.project`` :控制æ€å¯†åº¦è®¡ç®—ä¸æŠ•å½±è®¡ç®—çš„å¼€å…³ï¼› run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件 :guilabel:`pdos.in` å’Œ :guilabel:`structure.as` ä»¥åŠ :guilabel:`rho.bin` 之åŽï¼Œå°†æ–‡ä»¶ä¸Šä¼ 到æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW pdos.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`dos.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAWæ€å¯†åº¦è®¡ç®—之åŽå¾—到的日志文件; - :guilabel:`dos.h5` :æ€å¯†åº¦è®¡ç®—对应的 **h5** 输出文件;投影æ€å¯†åº¦çš„æ•°æ®ä¿å˜åœ¨ :guilabel:`dos.h5` 文件ä¸ï¼Œå…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ **python** 对 :guilabel:`dos.h5` 进行数æ®å¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†å¾—到的投影æ€å¯†åº¦å›¾æ•ˆæžœåº”如下所示: .. figure:: ./../imgs/phase2/projected-dos.png :align: center :width: 500px | | potential势函数计算 ========================================================================== åŠ¿å‡½æ•°è®¡ç®—æœ‰ä¸¤ç§æ–¹å¼å¯å®Œæˆï¼Œtask=potential çš„ä¸¤æ¥æ³•åŠ task=scf çš„ä¸€æ¥æ³•。æ¤èЂ以Si体系为例,介ç»ä¸¤ç§æ–¹æ³•ä¸‹å¯¹åº”çš„å‚æ•°è®¾ç½®ã€‚ :math:`Si` 势函数计算输入文件 ------------------------------------------------------ task = potential 两æ¥ç®— ****************************************************** 输入文件包å«å‚数文件 :guilabel:`scf.in` 〠:guilabel:`potential.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 设置与自洽计算一致, :guilabel:`potential.in` 设置如下: .. code-block:: :linenos: # task type task = potential #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none cal.iniCharge = ./rho.bin cal.methods = 2 cal.smearing = 1 cal.ksamping = G cal.kpoints = [10, 10, 10] cal.cutoffFactor = 1.5 #potential related potential.type=all :guilabel:`potential.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在势函数计算ä¸å¯ä»¥å°½é‡ä¿ç•™ **sys.** å’Œ **cal.** çš„å‚æ•°åˆ° :guilabel:`potential.in` ä¸ï¼Œä¹‹åŽè®¾ç½®åŠ¿å‡½æ•°è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``task`` :设置计算类型,本次计算为 ``potential`` 势函数计算; - ``cal.iniCharge`` :设置读å–电è·å¯†åº¦æ–‡ä»¶çš„路径,支æŒç»å¯¹è·¯å¾„åŠç›¸å¯¹è·¯å¾„,这里./表示当å‰è·¯å¾„下的 :guilabel:`rho.bin` 文件; åŠ¿å‡½æ•°è®¡ç®—ä¸æ–°å¢žå‚数: - ``potential.type`` :控制势函数ä¿å˜çš„类型,当选择 **all** 的时候,势函数计算完æˆä¹‹åŽä¼šåŒæ—¶ä¿å˜é™ç”µåŠ¿ï¼ˆç¦»å势和hartree势之和)åŠå±€åŸŸåŠ¿ï¼ˆé™ç”µåŠ¿å’Œäº¤æ¢å…³è”势之和); :guilabel:`structure.as` 文件åŒè‡ªæ´½è®¡ç®—。(è§2.2节) .. note:: 1. **两æ¥ç®—时,scf.in å’Œ potential.in ä¸å‚æ•° cal.cutoffFactoråŠcal.cutoff å¿…é¡»ä¿æŒä¸€è‡´ï¼Œå¦åˆ™ä¼šå‡ºçŽ°æ ¼ç‚¹æ•°æ®ä¸åŒ¹é…的问题。** 2. **如果所计算的体系需è¦è€ƒè™‘å¶æžä¿®æ£ï¼Œæ¤æ—¶ç”¨æˆ·éœ€è¦åœ¨è‡ªæ´½å’ŒåŠ¿å‡½æ•°è®¡ç®—æ–‡ä»¶ä¸éƒ½åŠ å…¥corr.dipol = true以åŠcorr.dipolDirection傿•°ï¼Œcorr.dipol = trueè¡¨ç¤ºæ‰“å¼€å¶æžä¿®æ£çš„开关,corr.dipolDirectionè¡¨ç¤ºè®¾ç½®å¶æžä¿®æ£çš„æ–¹å‘aã€bã€cåˆ†åˆ«è¡¨ç¤ºæ²¿ç€æ™¶æ ¼çŸ¢é‡çš„aã€bã€cæ–¹å‘。** 3. **å¶æžä¿®æ£çš„具体案例è§åº”用案例:Au-Al体系功函数计算案例。** task = scf 一æ¥ç®— ****************************************************** 输入文件包å«å‚数文件 :guilabel:`scf.in` ,结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 傿•°å¦‚下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 2 cal.smearing = 1 cal.ksamping = G cal.kpoints = [10, 10, 10] cal.cutoffFactor = 1.5 #outputs io.charge = true io.wave = true #potential related io.potential = true .. note:: 1. 势函数一æ¥ç®—对应结果文件为 scf.h5 ï¼Œæ¤æ—¶åŠ¿å‡½æ•°æ•°æ®å˜å‚¨åœ¨ scf.h5 文件ä¸ï¼Œå¯ç›´æŽ¥è°ƒç”¨ :doc:`/tools` 的势函数处ç†è„šæœ¬åˆ†æž scf.h5 文件。 2. **io.potential=true åªåœ¨ task=scf 时生效。** run程åºè¿è¡Œ ------------------------------------------------------ 以两æ¥ç®—ä¸ºä¾‹ï¼Œå°†å‚æ•°æŽ§åˆ¶æ–‡ä»¶ :guilabel:`scf.in` 〠:guilabel:`potential.in` 和结构文件 :guilabel:`structure.as` ä¸Šä¼ åˆ°æœåŠ¡å™¨ï¼ŒæŒ‰ç…§ç»“æž„å¼›è±«ä¸ä»‹ç»çš„æ–¹æ³•便¬¡æ‰§è¡Œ :guilabel:`DS-PAW scf.in` 〠:guilabel:`DS-PAW potential.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` 〠:guilabel:`potential.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW势函数计算之åŽå¾—到的日志文件; - :guilabel:`potential.h5` :势函数计算对应的 **h5** è¾“å‡ºæ–‡ä»¶ï¼Œå…·ä½“ç»“æž„è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ **python** 脚本将 :guilabel:`potential.h5` æ ¼å¼çš„è½¬åŒ–æˆ **VESTA** 软件支æŒçš„æ ¼å¼ï¼Œä¹Ÿå¯ç›´æŽ¥ä½¿ç”¨è„šæœ¬å¯¹ä¸‰ç»´åŠ¿å‡½æ•°è¿›è¡Œé¢å†…å¹³å‡ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†å¾—到的真空方å‘势函数曲线如下所示: .. figure:: ./../imgs/phase2/potential.png :align: center :width: 700px | | elf电å局域密度计算 ========================================================================== 电åå±€åŸŸå¯†åº¦è®¡ç®—æœ‰ä¸¤ç§æ–¹å¼å¯å®Œæˆï¼Œtask=elf çš„ä¸¤æ¥æ³•åŠ task=scf çš„ä¸€æ¥æ³•。æ¤èЂ以Si体系为例,介ç»ä¸¤ç§æ–¹æ³•ä¸‹å¯¹åº”çš„å‚æ•°è®¾ç½®ã€‚ :math:`Si` 电å局域密度计算输入文件 ------------------------------------------------------ task = elf 两æ¥ç®— ****************************************************** 输入文件包å«å‚数文件 :guilabel:`scf.in` å’Œ :guilabel:`ELF.in` ,结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 设置与自洽计算一致, :guilabel:`ELF.in` 设置如下: .. code-block:: :linenos: # task type task = elf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none cal.iniCharge = ./rho.bin cal.methods = 2 cal.smearing = 1 cal.ksamping = G cal.kpoints = [10, 10, 10] cal.cutoffFactor = 1.5 :guilabel:`ELF.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在ELF计算ä¸å¯ä»¥å°½é‡ä¿ç•™ **sys.** å’Œ **cal.** çš„å‚æ•°åˆ° :guilabel:`ELF.in` ä¸ï¼š - ``task`` :设置计算类型,本次计算为ELF计算; - ``cal.iniCharge`` :设置电è·å¯†åº¦æ–‡ä»¶çš„读å–路径,支æŒç»å¯¹è·¯å¾„åŠç›¸å¯¹è·¯å¾„,这里./表示当å‰è·¯å¾„下的 :guilabel:`rho.bin` 文件; :guilabel:`structure.as` 文件åŒï¼ˆè§2.2节)自洽计算的。 .. note:: 1. **两æ¥ç®—时,scf.in å’Œ ELF.in ä¸å‚æ•° cal.cutoffFactoråŠcal.cutoff å¿…é¡»ä¿æŒä¸€è‡´ï¼Œå¦åˆ™ä¼šå‡ºçŽ°æ ¼ç‚¹æ•°æ®ä¸åŒ¹é…的问题。** 2. **ELFè®¡ç®—ä¸æ”¯æŒnon-collinear计算。** task = scf 一æ¥ç®— ****************************************************** 输入文件包å«å‚数文件 :guilabel:`scf.in` ,结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 傿•°å¦‚下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 2 cal.smearing = 1 cal.ksamping = G cal.kpoints = [10, 10, 10] cal.cutoffFactor = 1.5 #outputs io.charge = true io.wave = true #elf related io.elf = true .. note:: 1. 电å局域密度一æ¥ç®—对应结果文件为 scf.h5 ï¼Œæ¤æ—¶ç”µå局域密度数æ®å˜å‚¨åœ¨ scf.h5 文件ä¸ï¼Œå¯ç›´æŽ¥è°ƒç”¨ :doc:`/tools` 的电å局域密度处ç†è„šæœ¬åˆ†æž scf.h5 文件。 2. **io.elf=true åªåœ¨ task=scf 时生效。** 3. **ELFè®¡ç®—ä¸æ”¯æŒnon-collinear计算。** run程åºè¿è¡Œ ------------------------------------------------------ 以两æ¥ç®—ä¸ºä¾‹ï¼Œå°†å‚æ•°æŽ§åˆ¶æ–‡ä»¶ :guilabel:`scf.in` 〠:guilabel:`ELF.in` 和结构文件 :guilabel:`structure.as` ä¸Šä¼ åˆ°æœåŠ¡å™¨ï¼ŒæŒ‰ç…§ç»“æž„å¼›è±«ä¸ä»‹ç»çš„æ–¹æ³•便¬¡æ‰§è¡Œ :guilabel:`DS-PAW scf.in` 〠:guilabel:`DS-PAW ELF.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` 〠:guilabel:`elf.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW局域密度计算之åŽå¾—到的日志文件; - :guilabel:`elf.h5` :ELF计算对应的 **h5** 输出文件, å…·ä½“ç»“æž„è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ **python** 脚本将 :guilabel:`elf.h5` æ ¼å¼çš„è½¬åŒ–æˆ **VESTA** 软件支æŒçš„æ ¼å¼ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†å¾—到的三维电å局域密度图效果应如下所示: .. figure:: ./../imgs/phase2/elf.png :align: center :width: 300px | | pcharge部分电è·å¯†åº¦è®¡ç®— ========================================================================== æœ¬èŠ‚å°†ä»¥çŸ³å¢¨çƒ¯ä¸ºä¾‹åˆ†æžæŒ‡å®šk点下特定能带的电è·å¯†åº¦ï¼Œè‡ªæ´½å®Œæˆä¹‹åŽå‡†å¤‡éƒ¨åˆ†ç”µè·å¯†åº¦çš„计算,并对部分电è·å¯†åº¦ä½œå›¾è¿›è¡Œåˆ†æžã€‚ graphene石墨烯部分电è·å¯†åº¦è®¡ç®—输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`pcharge.in` 和结构文件 :guilabel:`structure.as` ,自洽计算得到的电è·å¯†åº¦æ–‡ä»¶ :guilabel:`rho.bin` 和波函数文件 :guilabel:`wave.bin` , :guilabel:`pcharge.in` 如下: .. code-block:: :linenos: # task type task = pcharge #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none cal.methods = 2 cal.smearing = 1 cal.ksamping = G cal.kpoints = [9, 9, 1] cal.cutoffFactor = 1.5 cal.iniCharge = ./rho.bin cal.iniWave = ./wave.bin #pcharge related pcharge.bandIndex = [4,5] pcharge.kpointsIndex = [12] pcharge.sumK= false :guilabel:`pcharge.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在部分电è·å¯†åº¦è®¡ç®—ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`pcharge.in` ä¸ï¼Œä¹‹åŽè®¾ç½®éƒ¨åˆ†ç”µè·å¯†åº¦è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``task`` : 设置计算类型,本次计算为部分电è·å¯†åº¦è®¡ç®—ï¼› - ``cal.iniCharge`` : 设置电è·å¯†åº¦æ–‡ä»¶çš„读å–路径,支æŒç»å¯¹è·¯å¾„åŠç›¸å¯¹è·¯å¾„,这里./表示当å‰è·¯å¾„下的 :guilabel:`rho.bin` 文件; - ``cal.iniWave`` : 设置波函数文件的读å–路径,支æŒç»å¯¹è·¯å¾„åŠç›¸å¯¹è·¯å¾„,这里./表示当å‰è·¯å¾„下的 :guilabel:`wave.bin` 文件; - ``pcharge.bandIndex`` : 设置需进行电è·å¯†åº¦åˆ†æžçš„能带åºå·ï¼Œè¿™é‡Œ[4,5]表示分æžèƒ½å¸¦4和能带5的电è·å¯†åº¦ï¼› - ``pcharge.kpointsIndex`` : 设置进行电è·å¯†åº¦åˆ†æžçš„K点åºå·ï¼Œè¿™é‡Œ[12]表示分æžä¸¤æ¡èƒ½å¸¦çš„电è·å¯†åº¦æ—¶k点åºå·éƒ½ä¸º12ï¼› - ``pcharge.sumK`` : 控制是å¦å°†æ‰€åˆ†æžçš„æ‰€æœ‰K点能带数æ®ç›¸åŠ ã€‚è¿™é‡Œfalse表示ä¸ç›¸åŠ ï¼› :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 2 Lattice 2.46120000 0.00000000 0.00000000 -1.23060000 2.13146172 0.00000000 0.00000000 0.00000000 6.70900000 Cartesian C 0.61530000 0.35524362 3.35450000 C 0.61530000 1.77621810 3.35450000 .. note:: 1. **部分电è·å¯†åº¦åˆ†ä¸¤æ¥å®Œæˆï¼Œç¬¬äºŒæ¥å¿…须读å–自洽计算的电è·å¯†åº¦æ–‡ä»¶rho.binåŠæ³¢å‡½æ•°æ–‡ä»¶wave.bin。** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件 :guilabel:`pcharge.in` 〠:guilabel:`structure.as` 以åŠè‡ªæ´½è®¡ç®—得到的 :guilabel:`rho.bin` 〠:guilabel:`wave.bin` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW pcharge.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` ã€:guilabel:`pcharge.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW部分电è·å¯†åº¦è®¡ç®—之åŽå¾—到的日志文件; - :guilabel:`pcharge.h5` :部分电è·å¯†åº¦è®¡ç®—完æˆä¹‹åŽçš„h5æ•°æ®æ–‡ä»¶ï¼Œæ¤æ—¶ä¸¤æ¡èƒ½å¸¦çš„电è·å¯†åº¦æ•°æ®è¢«ä¿å˜åœ¨ :guilabel:`pcharge.h5` ä¸ï¼Œå…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ **python** 对 :guilabel:`pcharge.h5` 进行数æ®å¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†k点åºå·ä¸º **12** 时能带 **4** 的电è·å¯†åº¦å›¾æ•ˆæžœåº”如下所示: .. figure:: ./../imgs/phase2/pcharge.png :align: center :width: 400px | | hseæ‚化泛函计算 ========================================================================== 本节将以Si体系为例,介ç»DS-PAW程åºé€šè¿‡è‡ªæ´½ä¸ç›´æŽ¥è®¡ç®—能带的方法计算æ‚化泛函能带,观察使用æ‚化泛函计算åŽèƒ½å¸¦å¸¦éš™çš„å˜åŒ–。 :math:`Si` æ‚化泛函计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`ioband.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`ioband.in` 如下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.spin = none #scf related cal.methods = 1 cal.totalBands = 12 cal.smearing = 1 cal.ksamping = G cal.kpoints = [5, 5, 5] cal.cutoffFactor = 1.5 #band related io.band = true band.kpointsCoord=[0.62500000,0.25000000,0.62500000,0.50000000,0.00000000,0.50000000,0.00000000,0.00000000,0.00000000,0.50000000,0.00000000,0.50000000,0.50000000,0.25000000,0.75000000,0.37500000,0.37500000,0.75000000,0.00000000,0.00000000,0.00000000] band.kpointsLabel = [U,X,G,X,W,K,G] band.kpointsNumber = [20,20,20,20,20,20] band.project = false #HSE related sys.hybrid=true sys.hybridType=HSE06 #outputs io.charge = true io.wave = true :guilabel:`ioband.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在æ‚化泛函计算ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`ioband.in` ä¸ï¼Œä¹‹åŽè®¾ç½®æ‚åŒ–æ³›å‡½è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``sys.hybrid`` : 控制æ‚化泛函计算的开关,true表示引入æ‚化泛函计算; - ``sys.hybridType`` : 设置æ‚化泛函的类型,æ¤ä¾‹ä¸ºHSE06ï¼› :guilabel:`structure.as` 文件åŒè‡ªæ´½è®¡ç®—。(è§2.2节) .. note:: 1. **ä¸åŒäºŽæ™®é€šè®¡ç®—使用 sys.functional 设置泛函类型,æ‚åŒ–æ³›å‡½è®¡ç®—é€šè¿‡å‚æ•° sys.hybridType æ¥æŽ§åˆ¶æ‚化泛函ç§ç±»ã€‚** 2. **æ‚åŒ–æ³›å‡½è®¡ç®—åªæ”¯æŒ task=scf/relax çš„è®¡ç®—ï¼Œå› æ¤æ‚化泛函能带计算åªèƒ½é€šè¿‡ä¸€æ¥ç®—完æˆã€‚** 3. **æ‚化泛函计算建议使用 damped MD/conjugated gradient 方法进行电åè‡ªæ´½è®¡ç®—ï¼Œå¯¹åº”å‚æ•°è®¾ç½®ä¸º cal.methods = 4/5** 4. **æ‚化泛函计算也å¯ä½¿ç”¨ block Davidson 方法进行电åè‡ªæ´½è®¡ç®—ï¼Œå³æ¤ä¾‹æ‰€è®¾ cal.methods = 1, æ¤æ—¶ scf.mixType傿•°ä¼šé»˜è®¤ä¸ºKerker** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件 :guilabel:`ioband.in` å’Œ :guilabel:`structure.as` ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW ioband.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` ç‰è¾“å‡ºæ–‡ä»¶ã€‚å¤„ç† :guilabel:`scf.h5` 的方法åŒï¼ˆè§2.3节)能带计算的方法,处ç†å¾—到的能带图效果应如下所示: .. figure:: ./../imgs/phase2/HSE-band.png :align: center :width: 500px | | 能带图表明打开æ‚化泛函计算åŽä»·å¸¦ä¸Žå¯¼å¸¦ä¹‹é—´çš„带隙å˜å¤§ï¼Œçº¦ä¸º **1.2394** eV,ä¸è¿›è¡Œæ‚化泛函计算得到的能带带隙约为 **0.6433** eV。 | 修改æ‚化泛函Alpha系数 ------------------------------------------------------ 2.10.1ç« èŠ‚å±•ç¤ºçš„æ‚化泛函方法为HSE06,其对应的æ‚化泛函系数 ``sys.hybridAlpha = 0.25`` , 调整 ``sys.hybridAlpha`` 傿•°ä½œä»¥ä¸‹ä¸¤æ¬¡è®¡ç®—: - :guilabel:`scf.in` å’Œ :guilabel:`band.in` ä¸ä¿®æ”¹å‚数:``sys.hybridAlpha = 0.20`` - :guilabel:`scf.in` å’Œ :guilabel:`band.in` ä¸ä¿®æ”¹å‚数:``sys.hybridAlpha = 0.30`` 得到如下能带对比图: .. figure:: ../imgs/phase3/HSE-Alpha.png :height: 500px :align: center 分æžè¯¥å›¾å¯å¾—é€šè¿‡åŠ å¤§ ``sys.hybridAlpha`` 系数å¯ä»¥ä½¿èƒ½å¸¦å¸¦éš™è¿›ä¸€æ¥å¢žå¤§ã€‚ 从 :guilabel:`DS-PAW.log` 文件ä¸å¯è¯»å–当 ``sys.hybridAlpha`` 分别å–值 **0.20** 〠**0.25** 〠**0.30** 时,对应带隙值分别为 **1.1146** ã€**1.2394** 〠**1.3665** eV。 | | vdw范德瓦尔斯修æ£è®¡ç®— ========================================================================== 本节将以石墨体系的结构弛豫为例,介ç»åœ¨DS-PAWä¸å¦‚何æ£ç¡®çš„设置范德瓦尔斯修æ£ï¼Œå¹¶å°†è®¾ç½®èŒƒå¾·ç“¦å°”斯修æ£ä¸Žä¸è®¾ç½®è¯¥å‚数的结果进行对比分æžã€‚ graphite石墨结构弛豫输入文件 ------------------------------------------------------ 在对石墨进行弛豫时,å¯é€‰å–åŠç»éªŒæ–¹æ³•对范德瓦尔斯力进行修æ£ï¼Œä¹Ÿå¯é‡‡å–泛函修æ£çš„æ–¹æ³•,下é¢ä»‹ç»ä¸¤ç§æ–¹æ³•ä¸‹å¯¹åº”çš„å‚æ•°è®¾ç½®ã€‚ åŠç»éªŒä¿®æ£ ******************************************************** 输入文件包å«å‚数文件 :guilabel:`relax.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`relax.in` 如下: .. code-block:: :linenos: # task type task = relax #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [21, 21, 7] cal.cutoff = 600 scf.convergence = 1.0e-05 #relax related relax.max = 60 relax.freedom = all relax.convergence = 0.01 relax.methods = CG #vdw related corr.VDW = true corr.VDWType = D3G :guilabel:`relax.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在范德瓦尔斯修æ£è®¡ç®—ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`relax.in` ä¸ï¼Œä¹‹åŽè®¾ç½®èŒƒå¾·ç“¦å°”斯修æ£è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``corr.VDW`` : 控制åŠç»éªŒæ–¹æ³•范德瓦尔斯修æ£çš„开关,true表示已打开; - ``corr.VDWType`` : 设置范德瓦尔斯修æ£çš„类型,D3G表示DFT-D3 of Grimme方法; :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 4 Lattice 2.46729136 0.00000000 0.00000000 -1.23364568 2.13673699 0.00000000 0.00000000 0.00000000 7.80307245 Cartesian C 0.00000000 0.00000000 1.95076811 C 0.00000000 0.00000000 5.85230434 C 0.00000000 1.42449201 1.95076811 C 1.23364689 0.71224492 5.85230434 .. note:: 1. **使用åŠç»éªŒæ–¹æ³•å¯¹èŒƒå¾·ç“¦å°”æ–¯åŠ›è¿›è¡Œä¿®æ£æ—¶ï¼Œå¯é€‰å–ä¸åŒç±»åž‹çš„交æ¢å…³è”泛函,sys.functional çš„å¯é€‰å€¼æœ‰ PBE/REVPBE/RPBE/PBESOL** 2. **DS-PAW支æŒä½¿ç”¨åŠç»éªŒæ–¹æ³•对范德瓦尔斯力进行修æ£çš„åŒæ—¶å¼€å¯æ‚化泛函计算。** æ³›å‡½ä¿®æ£ ******************************************************** 泛函修æ£å¯¹åº”的输入文件 :guilabel:`relax.in` å¯å¦‚下所示: .. code-block:: :linenos: # task type task = relax #system related sys.structure = structure.as sys.symmetry = true sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [21, 21, 7] cal.cutoff = 600 scf.convergence = 1.0e-05 #relax related relax.max = 60 relax.freedom = all relax.convergence = 0.01 relax.methods = CG #vdw related sys.functional = vdw-optPBE :guilabel:`relax.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在范德瓦尔斯修æ£è®¡ç®—ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`relax.in` ä¸ï¼Œä¹‹åŽè®¾ç½®èŒƒå¾·ç“¦å°”斯修æ£è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``sys.functional`` : 控制泛函的类型,当选择包å«èŒƒå¾·ç“¦å°”斯修æ£çš„æ³›å‡½æ—¶ï¼Œè®¾ç½®vdw-ç³»åˆ—çš„æ³›å‡½å‚æ•°å³å¯ï¼Œæ¤ä¾‹é€‰å– vdw-optPBE 泛函,支æŒçš„æ³›å‡½ç±»åž‹è§ :doc:`/input-update` 部分。 .. note:: 1. **从原ç†å‡ºå‘,范德瓦尔斯有两ç§ä¸åŒçš„ä¿®æ£æ–¹å¼ï¼Œåˆ†åˆ«å¯¹åº”傿•° corr.VDW = true (åŠç»éªŒä¿®æ£ï¼‰ å’Œ sys.functional = vdw-... (泛函修æ£ï¼‰ã€‚** run程åºè¿è¡Œ ------------------------------------------------------ 以åŠç»éªŒä¿®æ£ä¸ºä¾‹ï¼Œå‡†å¤‡å¥½è¾“入文件之åŽï¼Œå°† :guilabel:`relax.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW relax.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`relax.h5` 〠:guilabel:`latestStructure.as` ç‰è¾“å‡ºæ–‡ä»¶ã€‚ï¼ˆä¸ºä½œå¯¹æ¯”å¦æ·»åŠ ä¸€ç»„ä¸è€ƒè™‘范德瓦尔斯的计算) å°† :guilabel:`latestStructure.as` æ‹–å…¥Device Studio查看结构,å¯å¾—弛豫结æŸåŽæ™¶èƒžå¸¸æ•°å¦‚下表所示,通过对比å¯å‘çŽ°æ·»åŠ èŒƒå¾·ç“¦å°”æ–¯ä¿®æ£è¿›è¡Œç»“构弛豫所得晶胞å‘é‡ **c** 的值与实验报é“结果\ :footcite:p:`Rgo2015ComparativeSO` 更接近。 +----------------------+-------------+----------------+ | Procedure | a (Ã…) | c (Ã…) | +----------------------+-------------+----------------+ | vdw-D3G this work | 2.463 | 6.954 | +----------------------+-------------+----------------+ | PBE this work | 2.464 | 7.914 | +----------------------+-------------+----------------+ | Experiment | 2.462 | 6.707 | +----------------------+-------------+----------------+ | | optical光妿€§è´¨è®¡ç®— ========================================================================== å…‰å¦è®¡ç®—æœ‰ä¸¤ç§æ–¹å¼å¯å®Œæˆï¼Œtask=optical çš„ä¸¤æ¥æ³•åŠ task=scf çš„ä¸€æ¥æ³•。本节将以Si体系为例,介ç»åœ¨DS-PAWä¸å¦‚ä½•è¿›è¡Œå…‰å¦æ€§è´¨çš„è®¡ç®—ï¼Œå¹¶å¯¹ä¸€ç³»åˆ—å…‰å¦æ€§è´¨çš„物ç†é‡è¿›è¡Œä½œå›¾åˆ†æžã€‚ :math:`Si` 光妿€§è´¨è®¡ç®—输入文件 ------------------------------------------------------ task = optical 两æ¥ç®— ****************************************************** 输入文件包å«å‚数文件 :guilabel:`scf.in` 〠:guilabel:`optical.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 设置与自洽计算一致, :guilabel:`optical.in` 设置如下: :guilabel:`optical.in` 如下: .. code-block:: :linenos: # task type task = optical #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [12, 12, 12] cal.cutoffFactor = 1.5 cal.iniCharge = ./rho.bin #optical related optical.grid = 2000 optical.sigma = 0.05 optical.smearing = 1 在光å¦è®¡ç®—ä¸å¯ä»¥å°½é‡ä¿ç•™ sys. å’Œ cal. çš„å‚æ•°åˆ° :guilabel:`optical.in` ä¸ï¼Œä¹‹åŽè®¾ç½®å…‰å¦è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``task`` : 设置计算类型,本次计算为 ``task = optical`` :å…‰å¦è®¡ç®—ï¼› - ``cal.iniCharge`` : 设置读å–电è·å¯†åº¦æ–‡ä»¶çš„路径,支æŒç»å¯¹è·¯å¾„åŠç›¸å¯¹è·¯å¾„,这里./表示当å‰è·¯å¾„下的 :guilabel:`rho.bin` ï¼› - ``optical.grid`` : 表示DS-PAWè®¡ç®—å…‰å¦æ€§è´¨æ—¶åœ¨èƒ½é‡åŒºå†…çš„ç½‘æ ¼ç‚¹æ•°ï¼Œæ¤ä¾‹ä¸º2000ï¼› - ``optical.sigma`` : 决定使用optical.smearing决定的展开算法时的展宽宽度,æ¤ä¾‹ä¸º0.05ï¼› - ``optical.smearing`` : 决定在optical计算时对能é‡å±•宽时的展宽算法,æ¤ä¾‹ä¸º1。 task = scf 一æ¥ç®— ****************************************************** 输入文件包å«å‚数文件 :guilabel:`scf.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 设置如下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [12, 12, 12] cal.cutoffFactor = 1.5 #optical related io.optical = true :guilabel:`scf.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š åœ¨å…‰å¦æ€§è´¨è®¡ç®—ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`scf.in` ä¸ï¼Œä¹‹åŽè®¾ç½®å…‰å¦æ€§è´¨è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``io.optical`` : æŽ§åˆ¶å…‰å¦æ€§è´¨è®¡ç®—的开关,当io.optical=trueæ—¶ï¼Œå¯¹ä½“ç³»è¿›è¡Œå…‰å¦æ€§è´¨çš„计算; :guilabel:`structure.as` 文件åŒè‡ªæ´½è®¡ç®—。(è§2.2节) run程åºè¿è¡Œ ------------------------------------------------------ 以两æ¥ç®—为例,准备好输入文件之åŽï¼Œå°† :guilabel:`scf.in` 〠:guilabel:`optical.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW scf.in` 〠:guilabel:`optical.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` 〠:guilabel:`optical.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW光妿€§è´¨è®¡ç®—之åŽå¾—到的日志文件; - :guilabel:`optical.h5` ï¼šå…‰å¦æ€§è´¨è®¡ç®—完æˆä¹‹åŽçš„ **h5** æ•°æ®æ–‡ä»¶ï¼Œæ³¨æ„h5文件的å称与taskç±»åž‹ä¸¥æ ¼ä¸€è‡´ã€‚h5文件的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ **python** 对 :guilabel:`optical.h5` 或者一æ¥ç®—的结果 :guilabel:`scf.h5` 进行数æ®å¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†å¯å¾—介电常数实部ã€ä»‹ç”µå¸¸æ•°è™šéƒ¨ã€å¸å…‰ç³»æ•°ã€æ¶ˆå…‰ç³»æ•°ã€å…‰ç”µå¯¼çއã€åå°„çŽ‡ã€æŠ˜å°„çŽ‡ã€èƒ½é‡æŸå¤±éšèƒ½é‡çš„å˜åŒ–的曲线,以å¸å…‰ç³»æ•°æ›²çº¿ä¸ºä¾‹ï¼Œå¾—到的曲线效果图应如下所示: .. figure:: ./../imgs/phase2/optical-2.png :align: center frequency频率计算 ========================================================================== 本节将以 :math:`CO` 分å为例,介ç»åœ¨DS-PAWä¸å¦‚何进行频率计算。 :math:`CO` 频率计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`frequency.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`frequency.in` 如下: .. code-block:: :linenos: # task type task = frequency #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 2 cal.smearing = 1 cal.ksamping = MP cal.kpoints = [9, 9, 9] cal.cutoffFactor = 1.5 scf.convergence = 1.0e-6 #frequency related frequency.dispOrder = 1 frequency.dispRange = 0.02 #outputs io.charge = false io.wave = false :guilabel:`frequency.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在频率计算ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`frequency.in` ä¸ï¼Œä¹‹åŽè®¾ç½®é¢‘çŽ‡è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``task`` : 设置计算类型,本次计算为frequency频率计算; - ``frequency.dispOrder`` : è®¾ç½®é¢‘çŽ‡è®¡ç®—æ—¶åŽŸåæŒ¯åŠ¨çš„æ–¹å¼ã€‚1对应ä¸å¿ƒå·®åˆ†æ³•,å³2ç§åŽŸåæŒ¯åŠ¨æ–¹å¼ï¼šæ¯ä¸ªç¬›å¡å°”æ–¹å‘上原åçš„ä½ç§»ä¸º ``±frequency.dispRange`` ï¼›2对应4ç§åŽŸåæŒ¯åŠ¨æ–¹å¼ï¼šæ¯ä¸ªç¬›å¡å°”æ–¹å‘上原åçš„ä½ç§»ä¸º ``±frequency.dispRange`` å’Œ ``±2*frequency.dispRange`` ï¼› - ``frequency.dispRange`` : 设置频率计算时的原åä½ç§»å¤§å°ï¼› :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 2 Lattice 8.0 0.0 0.0 0.0 8.0 0.0 0.0 0.0 8.0 Cartesian Fix_x Fix_y Fix_z O 0 0 0 T T F C 0 0 1.143 T T F .. note:: 1. **频率计算时应æé«˜è‡ªæ´½è®¡ç®—的收敛精度,建议设置为1.0e-6以上。** 2. **由于固定了C,O原å在x,yæ–¹å‘的自由度,故两原ååªåœ¨zæ–¹å‘上å¯åŠ¨ã€‚** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`frequency.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW frequency.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`frequency.h5` 〠:guilabel:`frequency.txt` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW频率计算之åŽå¾—到的日志文件; - :guilabel:`frequency.h5` :频率计算完æˆä¹‹åŽçš„h5æ•°æ®æ–‡ä»¶ï¼Œæ¤æ—¶é¢‘率数æ®è¢«ä¿å˜åœ¨è¯¥æ–‡ä»¶ä¸ï¼Œå…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分。 - :guilabel:`frequency.txt` :频率计算完æˆä¹‹åŽçš„ **txt** 文本文件,该文件写入频率相关数æ®ï¼Œä¸Ž :guilabel:`frequency.h5` 文件数æ®ä¸€è‡´ï¼Œä¾¿äºŽç”¨æˆ·å¿«é€ŸèŽ·å–ä¿¡æ¯ã€‚ 从 :guilabel:`frequency.txt` ä¸å¯èŽ·å–以下数æ®ï¼š +---------------+-------------+-------------+-------------+--------------+ | Frequency | THz | 2PiTHz| cm-1 | meV | +---------------+-------------+-------------+-------------+--------------+ | 1 f | 63.844168| 401.144726| 2129.612084| 264.038342| +---------------+-------------+-------------+-------------+--------------+ | 2 f/i | 0.051335 | 0.322546| 1.712346| 0.212304| +---------------+-------------+-------------+-------------+--------------+ COåªåœ¨zæ–¹å‘上两个原åå¯åŠ¨ï¼Œå› æ¤åªæœ‰ä¸¤ä¸ªé¢‘率,通过上表å¯ä»¥çœ‹åˆ°ä¸€ä¸ªæŒ¯åŠ¨æ¨¡å¼çš„频率约为 **63.8** THz,还有一个在 **0** 附近的虚频,一般情况虚频å°äºŽ2THz基本å¯ä»¥å¿½ç•¥ä¸è®¡ã€‚ | | elastic弹性常数计算 ========================================================================== 本节将以Si体系为例,介ç»åœ¨DS-PAWä¸å¦‚何进行弹性计算。 :math:`Si` 弹性常数计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`elastic.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`elastic.in` 如下: .. code-block:: :linenos: # task type task = elastic #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [5, 5, 5] cal.cutoffFactor = 1.5 scf.convergence = 1.0e-6 #frequency related elastic.dispOrder = 1 elastic.dispRange = 0.01 #outputs io.charge = false io.wave = false :guilabel:`elastic.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在弹性计算ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`elastic.in` ä¸ï¼Œä¹‹åŽè®¾ç½®å¼¹æ€§è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``task`` : 设置计算类型,本次计算为elastic弹性计算; - ``elastic.dispOrder`` : è®¾ç½®å¼¹æ€§è®¡ç®—æ—¶åŽŸåæŒ¯åŠ¨çš„æ–¹å¼, 1对应ä¸å¿ƒå·®åˆ†æ³•ï¼› - ``elastic.dispRange`` : 设置弹性计算时原åä½ç§»çš„大å°ï¼› :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 8 Lattice 5.43070000 0.00000000 0.00000000 0.00000000 5.43070000 0.00000000 0.00000000 0.00000000 5.43070000 Cartesian Si 0.67883750 0.67883750 0.67883750 Si 3.39418750 3.39418750 0.67883750 Si 3.39418750 0.67883750 3.39418750 Si 0.67883750 3.39418750 3.39418750 Si 2.03651250 2.03651250 2.03651250 Si 4.75186250 4.75186250 2.03651250 Si 4.75186250 2.03651250 4.75186250 Si 2.03651250 4.75186250 4.75186250 .. note:: 1. **弹性计算时应æé«˜è‡ªæ´½è®¡ç®—的收敛精度,建议设置在1.0e-6以上。** 2. **å¼¹æ€§è®¡ç®—ä¸æ”¯æŒå›ºå®šåŽŸå。** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`elastic.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW elastic.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`elastic.h5` 〠:guilabel:`elastic.txt` è¿™3个文件。 - :guilabel:`DS-PAW.log` :DS-PAW弹性计算之åŽå¾—到的日志文件; - :guilabel:`elastic.h5` : 弹性计算完æˆä¹‹åŽçš„ **h5** æ•°æ®æ–‡ä»¶ï¼Œæ¤æ—¶å¼¹æ€§æ¨¡é‡è¢«ä¿å˜åœ¨ :guilabel:`elastic.h5` ä¸ï¼Œå…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; - :guilabel:`elastic.txt` : 弹性计算完æˆä¹‹åŽçš„ **txt** 文本文件,该文件写入弹性相关数æ®ï¼Œä¸Ž :guilabel:`elastic.h5` 文件数æ®ä¸€è‡´ï¼Œä¾¿äºŽç”¨æˆ·å¿«é€ŸèŽ·å–ä¿¡æ¯ã€‚ 从 :guilabel:`elastic.txt` 文件å¯å¾—如下弹性常数矩阵: **刚性弹性矩阵:** +---------+------------+-------------+------------+------------+-------------+ | 158.7644| 62.9858 | 62.9858 | 0.0000 | -0.0000| 0.0000| +---------+------------+-------------+------------+------------+-------------+ | 62.9858 | 158.7644 | 62.9858 | 0.0000| 0.0000| 0.0000| +---------+------------+-------------+------------+------------+-------------+ | 62.9858 | 62.9858 | 158.7644 | -0.0000 | 0.0000| 0.0000| +---------+------------+-------------+------------+------------+-------------+ | 0.0000 | 0.0000 | -0.0000 | 75.8807 | -0.0000| 0.0000| +---------+------------+-------------+------------+------------+-------------+ | -0.0000 | 0.0000 | 0.0000 | -0.0000 | 75.8807| -0.0000| +---------+------------+-------------+------------+------------+-------------+ | 0.0000 | 0.0000 | 0.0000 | 0.0000 | -0.0000 | 75.8807 | +---------+------------+-------------+------------+------------+-------------+ **柔性弹性矩阵:** +---------+------------+-------------+------------+------------+-------------+ | 0.0081 | -0.0023| -0.0023| -0.0000 | 0.0000 | -0.0000 | +---------+------------+-------------+------------+------------+-------------+ | -0.0023 | 0.0081| -0.0023| -0.0000 | -0.0000 | 0.0000 | +---------+------------+-------------+------------+------------+-------------+ | -0.0023 | -0.0023| 0.0081| 0.0000 | -0.0000 | 0.0000 | +---------+------------+-------------+------------+------------+-------------+ | -0.0000 | -0.0000| 0.0000| 0.0132 | 0.0000 | -0.0000 | +---------+------------+-------------+------------+------------+-------------+ | 0.0000 | -0.0000| -0.0000| 0.0000 | 0.0132 | 0.0000 | +---------+------------+-------------+------------+------------+-------------+ | -0.0000 | 0.0000| 0.0000| -0.0000 | 0.0000 | 0.0132 | +---------+------------+-------------+------------+------------+-------------+ **体积模é‡ã€å‰ªåˆ‡æ¨¡é‡ã€æ¨æ°æ¨¡é‡å’Œæ³Šæ¾æ¯”:** +-------------------+------------+-------------+-------------+ | Properties | Vogit | Reuss | Hill | +-------------------+------------+-------------+-------------+ | BulkModulus(GPa) | 94.9120| 94.9120| 94.9120| +-------------------+------------+-------------+-------------+ | ShearModulus(GPa) | 64.6841| 61.5016| 63.0929| +-------------------+------------+-------------+-------------+ | YoungModulus(GPa) | 158.1297 | 151.7315 | 154.9452 | +-------------------+------------+-------------+-------------+ | PoissonRatio | 0.2223| 0.2336| 0.2279| +-------------------+------------+-------------+-------------+ Si体系为Cubic晶系,该晶系的独立矩阵元有三个:**C11** , **C12** , **C44** ,分别对应表ä¸çš„ 158.7644ã€62.9858ã€75.8807。 | | neb过渡æ€è®¡ç®— ========================================================================== 本节将以H在Pt(100)è¡¨é¢æ‰©æ•£ä¸ºä¾‹ï¼Œä»‹ç»åœ¨DS-PAWä¸å¦‚何进行过渡æ€è®¡ç®—(Cl-NEB),并对结果进行作图分æžã€‚ :math:`Pt` 过渡æ€è®¡ç®—输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`neb.in` 和多个结构文件 :guilabel:`structureNo.as` , :guilabel:`neb.in` 文件如下: .. code-block:: :linenos: task = neb sys.structure = structure.as sys.functional = PBE sys.spin = none sys.symmetry = true cal.ksamping = G cal.kpoints = [3,3,1] cal.cutoffFactor = 1.0 cal.smearing = 1 cal.sigma = 0.05 neb.freedom = atom neb.springK = 5 neb.images = 3 neb.iniFin = true neb.method = LBFGS neb.convergence = 0.03 neb.stepRange = 0.1 neb.max = 60 io.wave = false io.charge = false :guilabel:`neb.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在过渡æ€è®¡ç®—ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`neb.in` ä¸ï¼Œä¹‹åŽè®¾ç½®è¿‡æ¸¡æ€è®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``task`` :设置计算类型,本次计算为neb过渡æ€è®¡ç®—ï¼› - ``neb.stepRange`` : 设置过渡æ€è®¡ç®—ä¸ç»“构弛豫的æ¥é•¿ï¼› - ``neb.max`` : 设置过渡æ€è®¡ç®—ä¸ç»“æž„å¼›è±«çš„æœ€å¤§æ¥æ•°ï¼› - ``neb.iniFin`` : 控制过渡æ€è®¡ç®—ä¸åˆæ€ç»“构和末æ€ç»“构是å¦è¿›è¡Œè‡ªæ´½è®¡ç®—,true表示进行自洽计算; - ``neb.springK`` : 设置过渡æ€è®¡ç®—ä¸å¼¹ç°§ç³»æ•°Kï¼› - ``neb.images`` : 设置过渡æ€è®¡ç®—ä¸çš„ä¸é—´ç»“构的数目; - ``neb.method`` : 设置过渡æ€è®¡ç®—ä¸ä½¿ç”¨çš„算法; - ``neb.convergence`` : 设置过渡æ€è®¡ç®—ä¸å—åŠ›çš„æ”¶æ•›æ ‡å‡†ï¼› :guilabel:`structure.as` 需æä¾›å¤šä¸ªï¼Œåˆæ€ç»“æž„ :guilabel:`structure00.as` å‚考如下 .. code-block:: :linenos: Total number of atoms 13 Lattice 5.60580000 0.00000000 0.00000000 0.00000000 5.60580000 0.00000000 0.00000000 0.00000000 16.81740000 Cartesian Fix_x Fix_y Fix_z H 2.80881670 4.20393628 6.94088012 F F F Pt 1.40145000 1.40145000 1.98192999 T T T Pt 4.20434996 1.40145000 1.98192999 T T T Pt 1.40145000 4.20434996 1.98192999 T T T Pt 4.20434996 4.20434996 1.98192999 T T T Pt 0.00272621 0.00056545 3.91746017 F F F Pt 0.00271751 2.80233938 3.91708172 F F F Pt 2.80568712 -0.00141176 3.91894328 F F F Pt 2.80548220 2.80426217 3.91792247 F F F Pt 1.39865124 1.40124680 5.84694340 F F F Pt 4.21951864 1.40156999 5.84719575 F F F Pt 1.38647954 4.20437926 5.89984296 F F F Pt 4.23154392 4.20414605 5.89983612 F F F 末æ€ç»“æž„ :guilabel:`structure04.as` å‚考如下 .. code-block:: :linenos: Total number of atoms 13 Lattice 5.60580000 0.00000000 0.00000000 0.00000000 5.60580000 0.00000000 0.00000000 0.00000000 16.81740000 Cartesian Fix_x Fix_y Fix_z H 1.52157824 2.80289997 6.91583941 F F F Pt 1.40145000 1.40145000 1.98192999 T T T Pt 4.20434997 1.40145000 1.98192999 T T T Pt 1.40145000 4.20434997 1.98192999 T T T Pt 4.20434997 4.20434997 1.98192999 T T T Pt 0.02556963 0.00000000 3.90765450 F F F Pt 0.02708862 2.80290000 3.91082177 F F F Pt 2.83159105 0.00000000 3.91547525 F F F Pt 2.82981856 2.80290000 3.90913282 F F F Pt 1.45998966 1.38039927 5.88134827 F F F Pt 4.25691060 1.38811299 5.84551487 F F F Pt 1.45998966 4.22540069 5.88134827 F F F Pt 4.25691060 4.21768697 5.84551487 F F F .. note:: 1. **nebè®¡ç®—æ—¶åˆæ€æœ«æ€éœ€å…ˆè¿›è¡Œç»“构弛豫。** 2. **ä¸é—´ç»“构的生æˆå¯è°ƒç”¨â€œè¾…助工具使用教程-过渡æ€éƒ¨åˆ†â€çš„neb_interpolate_structures.pyè„šæœ¬ï¼Œå®Œæˆæ’值å¯è°ƒç”¨neb_visualize.py脚本对æ’值结构进行预览,å¯è°ƒç”¨calc_dist.py脚本查看image之间的è·ç¦»æ˜¯å¦åˆç†ã€‚** 3. **过渡æ€è®¡ç®—时的结构文件structureNo.aséœ€å˜æ”¾åœ¨å‘½å为No的文件夹ä¸ï¼Œæ–‡ä»¶å¤¹åºå·ä¸Žç»“构文件的åºå·éœ€ä¸€è‡´ã€‚文件夹外放置一个neb.in文件å³å¯ï¼Œåœ¨neb.in所在目录执行DS-PAW程åºã€‚** 4. **过渡æ€è®¡ç®—æ‰§è¡Œç¨‹åºæ—¶è°ƒç”¨çš„æ ¸æ•°è®¾ç½®ä¸ºimages的整数å€ã€‚** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`neb.in` æ–‡ä»¶å’ŒåŒ…å« :guilabel:`structureNo.as` æ–‡ä»¶çš„å¤šä¸ªæ–‡ä»¶å¤¹æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW neb.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽï¼š >> åˆæ€å’Œæœ«æ€ç»“构所在文件夹会生æˆè‡ªæ´½è®¡ç®—所得的 :guilabel:`DS-PAW.log` ã€:guilabel:`latestStructure00.as` 〠:guilabel:`scf.h5` ç‰è¾“出文件; >> ä¸é—´ç»“æž„ :guilabel:`structureNo.as` 所在文件夹 ``No`` (å‚与过渡æ€è®¡ç®—çš„ä¸é—´ç»“构所在文件夹,ä¸é—´ç»“构的个数由 ``neb.images`` 傿•°å†³å®šï¼‰ä¼šç”Ÿæˆç»“构优化所得的 :guilabel:`nebNo.h5` 〠:guilabel:`latestStructureNo.as` ç‰è¾“出文件; >> æœ€å¤–å±‚ç›®å½•å°†ä¼šç”Ÿæˆ :guilabel:`DS-PAW.log` 〠:guilabel:`neb.h5` è¿™2ä¸ªæ–‡ä»¶ï¼Œå…¶ä¸ :guilabel:`neb.h5` 为 ``No`` æ–‡ä»¶å¤¹ä¸‹å„ :guilabel:`nebNo.h5` æ–‡ä»¶çš„ä¿¡æ¯æ±‡æ€»ã€‚ - :guilabel:`DS-PAW.log` :DS-PAW过渡æ€è®¡ç®—之åŽå¾—到的日志文件; - :guilabel:`neb.h5` :过渡æ€è®¡ç®—完æˆä¹‹åŽçš„ **h5** æ•°æ®æ–‡ä»¶ï¼›æ¤æ—¶ååº”åæ ‡åŠèƒ½é‡å˜åŒ–ç‰æ•°æ®è¢«ä¿å˜åœ¨ :guilabel:`neb.h5` ä¸ï¼Œå…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ **python** 脚本 :download:`8neb_check_results.py <../dspawpy_proj/UserScripts/8neb_check_results.py>` 对neb计算的结果进行分æžï¼Œéœ€åœ¨å®Œæ•´çš„neb计算目录下执行分æžè„šæœ¬ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。 处ç†å¯å¾—到NEBè®¡ç®—å„æž„型的能é‡å’Œå—åŠ›è¡¨æ ¼ï¼š +-----+-------------+-----------------------+---------------------+---------------------------+ |Image|Force (eV/Ã…) |Reaction coordinate (Ã…)| Energy (eV) | Delta energy (eV) | +-----+-------------+-----------------------+---------------------+---------------------------+ |00 | 0.1803 | 0.0000 | -39637.0984 | 0.0000 | +-----+-------------+-----------------------+---------------------+---------------------------+ |01 | 0.0263 | 0.5428 | -39637.0186 | 0.0798 | +-----+-------------+-----------------------+---------------------+---------------------------+ |02 | 0.0248 | 1.0868 | -39636.8801 | 0.2183 | +-----+-------------+-----------------------+---------------------+---------------------------+ |03 | 0.2344 | 1.5884 | -39636.9984 | 0.1000 | +-----+-------------+-----------------------+---------------------+---------------------------+ |04 | 0.0141 | 2.0892 | -39637.0900 | 0.0084 | +-----+-------------+-----------------------+---------------------+---------------------------+ | 处ç†å¾—到的势垒曲线效果应如下所示: .. figure:: ./../imgs/phase2/neb-barrier.png :height: 600px :align: center | | 处ç†å¾—到的 02 image 在弛豫过程ä¸çš„能é‡ä¸Žå—力应如下所示: .. figure:: ./../imgs/phase2/neb-energy.png :align: center | å¦å¯ä½¿ç”¨ **python** 脚本 :guilabel:`neb_movie.py` 分æžè¿‡æ¸¡æ€æœå¯»ä¸çš„轨迹å˜åŒ–,生æˆçš„ :guilabel:`neb_movie.json` 文件å¯ç”¨ Device Studio 打开,截å–一帧如下所示: .. figure:: ./../imgs/phase2/neb-trajectory.png :height: 300px :align: center | | phonon声å谱计算 ========================================================================== 本节介ç»DS-PAW程åºå¦‚何进行声å计算åŠå£°åèƒ½å¸¦å’Œå£°åæ€å¯†åº¦è®¡ç®—ã€‚DS-PAW支æŒä¸¤ç§å£°å谱计算的方法:fd有é™ä½ç§»æ³•å’Œdfpt密度泛函微扰ç†è®ºæ–¹æ³•。本节以å•个MgO体系为例,介ç»å¦‚ä½•ç”¨ä¸¤ç§æ–¹æ³•计算声å能带和æ€å¯†åº¦ï¼Œå¹¶å¯¹å£°å能带和æ€å¯†åº¦ä½œå›¾è¿›è¡Œåˆ†æžã€‚ :math:`MgO` 声å谱能带计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`phonon.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`phonon.in` 如下: .. code-block:: :linenos: task = phonon sys.structure = structure.as sys.functional = PBE sys.spin = none cal.methods = 1 cal.smearing = 1 sys.symmetry = true scf.convergence = 1.0e-07 cal.ksamping = G cal.kpoints = [3,3,3] cal.sigma = 0.25 phonon.type = bandDos phonon.structureSize = [2,2,2] phonon.primitiveUVW = [0.0, 0.5, 0.5, 0.5, 0.0, 0.5, 0.5, 0.5, 0.0] phonon.method = dfpt phonon.qpoints = [41,41,41] phonon.dosRange = [0,20] phonon.qpointsLabel = [G,X,W,G,M] phonon.qpointsCoord = [0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.5, 0.5] phonon.qpointsNumber = 51 io.charge = false io.wave = false :guilabel:`phonon.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在声å计算ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`phonon.in` ä¸ï¼Œä¹‹åŽè®¾ç½®å£°åè®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``task`` : 设置计算类型,本次计算为phonon声å计算; - ``phonon.type`` : 设置声å计算的类型,bandDos对应计算声å能带和æ€å¯†åº¦ï¼› - ``phonon.structureSize`` : 设置声å计算时超胞的大å°ï¼› - ``phonon.primitiveUVW`` : 设置声å能带计算时原胞UVW的系数; - ``phonon.method`` : 设置声å计算的方法,dfpt为密度泛函微扰ç†è®ºæ–¹æ³•ï¼› - ``phonon.qpoints`` : 设置声å计算qç©ºé—´ç½‘æ ¼å–æ ·ä¸º41*41*41ï¼› - ``phonon.dosRange`` : è®¾ç½®å£°åæ€å¯†åº¦è®¡ç®—çš„èƒ½é‡åŒºé—´ä¸º[0,20]ï¼› - ``phonon.qpointsLabel`` : 设置声åèƒ½å¸¦è®¡ç®—æ—¶é«˜å¯¹ç§°ç‚¹æ ‡ç¾ï¼› - ``phonon.qpointsCoord`` : 设置声åèƒ½å¸¦è®¡ç®—æ—¶é«˜å¯¹ç§°ç‚¹åæ ‡ï¼› - ``phonon.qpointsNumber`` : 设置声å能带相邻两个高对称点的间隔; :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 8 Lattice 4.2555564654942897 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2555564654942888 0.0000000000000000 0.0000000000000000 0.0000000000000000 4.2555564654942897 Direct Mg 0.0000000000000000 0.0000000000000000 0.0000000000000000 Mg 0.0000000000000000 0.5000000000000000 0.5000000000000000 Mg 0.5000000000000000 0.0000000000000000 0.5000000000000000 Mg 0.5000000000000000 0.5000000000000000 0.0000000000000000 O 0.5000000000000000 0.5000000000000000 0.5000000000000000 O 0.5000000000000000 0.0000000000000000 0.0000000000000000 O 0.0000000000000000 0.5000000000000000 0.0000000000000000 O 0.0000000000000000 0.0000000000000000 0.5000000000000000 .. note:: 1. **声å计算时应æé«˜è‡ªæ´½è®¡ç®—的收敛精度,建议设置在1.0e-7以上。** 2. **声å计算时若打开对称性,建议适当æé«˜å¯¹ç§°æ€§åˆ¤æ–çš„ç²¾åº¦ï¼Œå‚æ•°sys.symmetryAccuracyå¯è®¾ç½®ä¸º1.0e-6或更å°ï¼ŒåŠ©äºŽå¾—åˆ°å‡†ç¡®çš„è®¡ç®—ç»“æžœã€‚** 3. **phonon.iniPhonon坿Œ‡å®šè·¯å¾„读å–声å计算(phonon.type = phonon)得到的phonon.h5文件,从而直接进行能带与æ€å¯†åº¦çš„计算。** 4. **phonon.type控制计算声å的类型,phonon对应计算声å,band对应计算声å能带,doså¯¹åº”è®¡ç®—å£°åæ€å¯†åº¦ï¼ŒbandDoså¯¹åº”åŒæ—¶è®¡ç®—声å能带和æ€å¯†åº¦ã€‚当phonon.type = band/dos/bandDos且phonon.iniPhonon未指定文件路径时,程åºå…ˆè‡ªåŠ¨å®Œæˆphonon.type = phonon的声åè®¡ç®—ï¼Œç„¶åŽæ ¹æ®ä»»åŠ¡è®¡ç®—èƒ½å¸¦æˆ–æ€å¯†åº¦ã€‚** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`phonon.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW phonon.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`phonon.h5` 〠:guilabel:`dfpt.json` å’Œ :guilabel:`dfpt.as` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW声å计算之åŽå¾—到的日志文件; - :guilabel:`dfpt.as` :声åè®¡ç®—æ—¶è¶…èƒžçš„ç»“æž„æ–‡ä»¶ï¼Œè®¡ç®—å£°åæ—¶è¯»å–该文件信æ¯ã€‚ - :guilabel:`dfpt.json` :声åè®¡ç®—æ—¶çš„å‚æ•°æ–‡ä»¶ï¼Œè¯¥æ–‡ä»¶ä¸Ž :guilabel:`phonon.in` 文件信æ¯ä¸€è‡´ï¼Œè®¡ç®—声志¶è¯»å–该文件信æ¯ã€‚ - :guilabel:`phonon.h5` :声å计算完æˆä¹‹åŽçš„ **h5** æ•°æ®æ–‡ä»¶ï¼›æ¤æ—¶å£°å能带数æ®è¢«ä¿å˜åœ¨ :guilabel:`phonon.h5` ä¸ï¼Œå…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ **python** 脚本对 :guilabel:`phonon.h5` 进行数æ®å¤„ç†ï¼Œå¤„ç†å¾—到的声å能带和æ€å¯†åº¦æ•ˆæžœå›¾åº”如下(a)ã€ï¼ˆb)所示: .. figure:: ../imgs/phase3/phonon-nonac.png :width: 600px :align: center .. centered:: (a) .. figure:: ../imgs/phase3/phonon-dos.png :width: 600px :align: center .. centered:: (b) | nacè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ 上节展示的为ä¸è€ƒè™‘长程相互作用的声å能带计算,若打开 **non-analytical term correction (nac)** 进行声å计算,在上节所示的 :guilabel:`phonon.in` æ–‡ä»¶ä¸æ·»åŠ ä»¥ä¸‹ä¸¤ä¸ªå‚æ•°å³å¯ï¼š .. code-block:: :linenos: phonon.dfptEpsilon=true phonon.nac = true 得到的声å能带效果图应如下(c)所示: .. figure:: ../imgs/phase3/phonon-nac.png :width: 600px :align: center .. centered:: (c) | fdphonon有é™ä½ç§»æ³•计算声å ------------------------------------------------------ **有é™ä½ç§»æ³•(fd)** è®¡ç®—çš„è¾“å…¥æ–‡ä»¶å¦‚ä¸‹æ‰€ç¤ºï¼Œå°†å‚æ•° ``phonon.method = dfpt`` 修改为 ``phonon.method = fd`` å³å¯ï¼Œéœ€è¦æ³¨æ„的是,fd方法计算得到输出文件与dfpt方法ä¸åŒã€‚ .. code-block:: :linenos: task = phonon sys.structure = structure.as sys.functional = PBE sys.spin = none cal.methods = 1 cal.smearing = 1 sys.symmetry = true scf.convergence = 1.0e-07 cal.ksamping = G cal.kpoints = [3,3,3] cal.sigma = 0.25 phonon.type = bandDos phonon.structureSize = [2,2,2] phonon.primitiveUVW = [0.0, 0.5, 0.5, 0.5, 0.0, 0.5, 0.5, 0.5, 0.0] phonon.method = fd phonon.qpoints = [41,41,41] phonon.qpointsLabel = [G,X,W,G,M] phonon.qpointsCoord = [0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.5, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.5, 0.5] phonon.qpointsNumber = 51 io.charge = false io.wave = false 以MgO体系为例, ``phonon.structureSize`` 设置为 ``[2,2,2]`` ,fd法计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`phonon.h5` 两个文件 å’Œ ``001`` 〠``002`` 文件夹。 ``001`` 文件夹下å˜åœ¨ :guilabel:`input.json` å’Œ :guilabel:`disp-001.as` 文件,``002`` 文件夹下å˜åœ¨ :guilabel:`input.json` å’Œ :guilabel:`disp-002.as` æ–‡ä»¶ï¼Œåæ–‡ä»¶å¤¹ä¸çš„两个文件ç‰åŒäºŽå†™å…¥è¾“入傿•°çš„ **in** æ–‡ä»¶å’Œç»“æž„å‚æ•°çš„ **as** 文件, ç”Ÿæˆæ–‡ä»¶å¤¹ï¼ˆ001 002...)的个数å–决于体系的对称性。 用 **python** è„šæœ¬å¤„ç†æœ‰é™ä½ç§»æ–¹æ³•计算得到的 :guilabel:`phonon.h5` æ–‡ä»¶ï¼Œå¾—åˆ°èƒ½å¸¦å›¾åŠæ€å¯†åº¦å›¾åŒdfpt方法计算得到的图(a)与(b)一致。 .. note:: 1. **介电常数的计算åªåœ¨phonon.method = dfptæ—¶æ‰èƒ½å®Œæˆ** 2. **phonon.nac的开关åªåœ¨phonon.method = dfpt且phonon.dfptEpsilon=true时生效** | | soc自旋轨é“耦åˆè®¡ç®— ========================================================================== 本节介ç»DS-PAW如何进行自旋轨é“耦åˆè®¡ç®—。以 :math:`Bi_{2}Se_{3}` ä½“ç³»ä¸ºä¾‹ï¼Œä½¿ç”¨ä¸¤æ¥æ³•进行能带计算并对能带进行作图分æžã€‚ :math:`Bi_{2}Se_{3}` 自旋轨é“耦åˆè®¡ç®—输入文件 ------------------------------------------------------ 首先进行自洽计算:输入文件包å«å‚数文件 :guilabel:`soi.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`soi.in` 如下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = false sys.functional = PBE #scf related cal.methods = 2 cal.smearing = 1 cal.ksamping = G cal.kpoints = [7, 7, 7] cal.cutoffFactor = 1.5 #soi related sys.spin= non-collinear sys.soi = true #outputs io.charge = true io.wave = false :guilabel:`soi.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在自旋轨é“耦åˆè®¡ç®—ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`soi.in` ä¸ï¼Œä¹‹åŽè®¾ç½®è‡ªæ—‹è½¨é“耦åˆè®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``sys.spin`` : 设置体系自旋类型,non-collinear 表示éžçº¿æ€§è‡ªæ—‹ï¼› - ``sys.soi`` : 控制是å¦è€ƒè™‘自旋轨é“è€¦åˆæ•ˆåº”ï¼›è¯¥å‚æ•°åœ¨sys.spin=non-collinear时生效; :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 5 Lattice -2.069 -3.583614 0.000000 2.069 -3.583614 0.000000 0.000 2.389075 9.546667 Direct Bi 0.3990 0.3990 0.6970 Bi 0.6010 0.6010 0.3030 Se 0.0000 0.0000 0.5000 Se 0.2060 0.2060 0.1180 Se 0.7940 0.7940 0.8820 能带计算的输入文件 :guilabel:`soiband.in` ,内容如下 .. code-block:: :linenos: # task type task = band #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE #scf related cal.methods = 2 cal.smearing = 1 cal.ksamping = G cal.kpoints = [7, 7, 7] cal.cutoffFactor = 1.5 #band related cal.iniCharge = ./rho.bin band.kpointsCoord = [0.00000000,0.00000000,0.00000000,0.00000000,0.00000000,0.50000000,0.50000000,0.50000000,0.00000000,0.00000000,0.00000000,0.00000000,0.50000000,0.00000000,0.00000000] band.kpointsLabel = [G,Z,F,G,L] band.kpointsNumber = [20,20,20,20] band.project = true #soi related sys.spin= non-collinear sys.soi = true :guilabel:`soiband.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在自旋轨é“耦åˆèƒ½å¸¦è®¡ç®—ä¸ï¼Œä¿ç•™è‡ªæ´½è®¡ç®—和自旋轨é“耦åˆè®¡ç®—çš„å‚æ•°åˆ° :guilabel:`soiband.in` ä¸ï¼Œä¹‹åŽè®¾ç½®èƒ½å¸¦è®¡ç®—çš„ç‰¹æœ‰å‚æ•°å³å¯ã€‚ .. note:: 1. **åˆå§‹ç£çŸ©çš„设置å‚考“应用案例-NiO体系的åé“ç£è®¡ç®—â€ï¼Œåœ¨structure.as文件的第七行设置Magæ ‡ç¾å³å¯ã€‚** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`soi.in` 〠:guilabel:`soiband.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•分别执行 :guilabel:`DS-PAW soi.in` å’Œ :guilabel:`DS-PAW soiband.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` 〠:guilabel:`band.h5` ç‰è¾“出文件。 å¤„ç† :guilabel:`band.h5` 的方法åŒï¼ˆè§2.3节)能带计算的方法,得到的能带效果图应如下图(a)所示,å¦ä½œä¸è€ƒè™‘自旋轨é“耦åˆçš„计算,得到的能带效果图应如下(b)所示: .. figure:: ../imgs/phase2/band-soc.png :height: 600px :align: center .. centered:: (a) .. figure:: ../imgs/phase2/band-nosoc.png :height: 600px :align: center .. centered:: (b) 从 :guilabel:`DS-PAW.log` å¯è¯»å– **BandGap** 值,图(a)和图(b)的带隙值分别为 **0.3251** eV å’Œ **0.0814** eV ,å¯å¾—结论:进行自旋轨é“耦åˆè®¡ç®—å¯åŠ å¤§ä»·å¸¦ä¸Žå¯¼å¸¦ä¹‹é—´çš„å¸¦éš™ã€‚ | | aimd分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿ ========================================================================== 本节将以水分å体系为例,介ç»åœ¨DS-PAWä¸å¦‚何进行分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿè®¡ç®—。 :math:`H_{2}O` 分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿè¾“入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`aimd.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`aimd.in` 如下: .. code-block:: :linenos: #task type task = aimd #system related sys.structure = structure.as sys.symmetry = false sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [1, 1, 1] cal.sigma = 0.1 #aimd related aimd.ensemble = NPT aimd.thermostat = langevin aimd.atomFCoeffElements = [H_1] aimd.atomFCoeffs = [1] aimd.latticeFCoeff = 1 aimd.pressure = 100 aimd.timeStep = 1 aimd.totalSteps = 2000 aimd.iniTemp = 2000 #outputs io.charge = false io.wave = false :guilabel:`aimd.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 在分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿè®¡ç®—ä¸å¯ä»¥å°½é‡ä¿ç•™sys.å’Œcal.çš„å‚æ•°åˆ° :guilabel:`aimd.in` ä¸ï¼Œä¹‹åŽè®¾ç½®åˆ†ååŠ¨åŠ›å¦æ¨¡æ‹Ÿè®¡ç®—ç‰¹æœ‰çš„å‚æ•°å³å¯ï¼š - ``task`` : 设置计算类型,本次计算为aimd分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿè®¡ç®—ï¼› - ``aimd.ensemble`` : 设置分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿæ—¶é€‰ç”¨çš„系综,æ¤ä¾‹ç³»ç»¼è®¾ç½®ä¸º NPT ï¼› - ``aimd.thermostat`` :设置分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿæ—¶é€‰ç”¨çš„æ’æ¸©å™¨æˆ–æ’压器,æ¤ä¾‹é€‰ç”¨ langevin 控温控压; - ``aimd.atomFCoeffElements`` : 设置考虑为 langevin 原åçš„å…ƒç´ å称,æ¤ä¾‹å°†å…¶ä¸ä¸€ä¸ªæ°¢åŽŸå设置为 langevin 原å,将该氢原åé‡å‘½å为 H_1 ï¼› - ``aimd.atomFCoeffs`` : 设置考虑为 langevin 原å对应的摩擦系数,å•ä½ ps-1ï¼› - ``aimd.latticeFCoeff`` : 设置 langevin æ’æ¸©å™¨ä¸æ™¶èƒžæ‘©æ“¦ç³»æ•°çš„大å°ï¼Œå•ä½ ps-1ï¼› - ``aimd.pressure`` : 设置 NPT æ¨¡æ‹Ÿæ—¶ä½“ç³»çš„ç›®æ ‡åŽ‹å¼ºå€¼ï¼Œå•ä½ kbarï¼› - ``aimd.timeStep`` : 设置分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿæ—¶çš„æ—¶é—´æ¥é•¿ï¼Œå•ä½ fsï¼› - ``aimd.totalSteps`` : 设置分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿçš„æ€»æ¥æ•°ï¼› - ``aimd.iniTemp`` : 设置分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿæ—¶çš„åˆå§‹æ¸©åº¦ï¼Œå•ä½ Kï¼› :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 3 Lattice 4.00000000 0.00000000 0.00000000 0.00000000 4.00000000 0.00000000 0.00000000 0.00000000 4.00000000 Cartesian H 2.63934013 1.89542007 1.58223984 H_1 1.36065987 2.11498988 2.45934006 O 1.65002999 1.88501012 1.54065994 .. note:: 1. **å…ƒç´ é‡å‘½å规则为 â€œåŽŸå…ƒç´ å +下划线 + è‡ªå®šä¹‰å—æ®µâ€** 。 2. **æ¤ä¾‹ä¸è®¾ç½®ç¬¬äºŒä¸ªæ°¢åŽŸå为 langevin 原å并将其é‡å‘½å为 H_1, 在structure.as文件ä¸éœ€æ‰‹åŠ¨å¯¹è¯¥åŽŸåçš„å…ƒç´ å称进行修改。** 3. **计算体系ä¸å˜åœ¨è‡ªå®šä¹‰å…ƒç´ åç§° H_1,程åºä¼šè‡ªåŠ¨æŸ¥æ‰¾ H_1 对应的 H å…ƒç´ çš„èµåŠ¿ï¼Œç”¨æˆ·æ— éœ€é¢å¤–准备新的èµåŠ¿ã€‚** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`aimd.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW aimd.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`aimd.h5` 〠:guilabel:`latestStructure.as` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿè®¡ç®—得到的日志文件; - :guilabel:`aimd.h5` : 分å动力å¦è®¡ç®—对应的 **h5** è¾“å‡ºæ–‡ä»¶ï¼›æ¤æ—¶æ¨¡æ‹Ÿæ—¶é—´å†…原åä½ç½®ã€ä½“系能é‡å’Œæ¸©åº¦ç‰æ•°æ®è¢«ä¿å˜åœ¨ :guilabel:`aimd.h5` ä¸ï¼Œå…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; - :guilabel:`latestStructure.as` : 分ååŠ¨åŠ›å¦æ¨¡æ‹Ÿè®¡ç®—所得的末æ€as结构文件,ä¿å˜æœ«æ€æž„型和速度信æ¯ï¼› å¯ä½¿ç”¨ **python** 脚本对 :guilabel:`aimd.h5` 文件进行数æ®å¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。在 NPT 系综下模拟 2000 æ¥å¾—到的 **åŽ‹åŠ›éšæ—¶é—´** 〠**æ¸©åº¦éšæ—¶é—´** å˜åŒ–曲线效果图应如下所示: .. figure:: ../imgs/phase3/aimd.png :width: 600px :align: center | .. note:: 1. **ä¸åŒç³»ç»¼å¯¹åº”å¯é€‰çƒæµ´èŒƒå›´ï¼šNVE系综å¯é€‰andersençƒæµ´ã€NVT系综å¯é€‰andersenã€noseHooverå’Œlangevin三ç§çƒæµ´ï¼ŒNPT系综å¯é€‰langevinçƒæµ´ã€NPH系综å¯é€‰langevinçƒæµ´**ï¼› 2. **如需模拟高温退ç«è¿‡ç¨‹ï¼Œè®¾ç½® aimd.ensemble 为 SAï¼ŒåŒæ—¶é€šè¿‡ aimd.iniTemp å’Œ aimd.finTemp 设置åˆå§‹å’Œæœ«æ€æ¸©åº¦å³å¯**ï¼› 3. **傿•° aimd.finTemp åªåœ¨æ¨¡æ‹Ÿé€€ç«æ—¶ç”Ÿæ•ˆï¼Œæ’温系综如 NPT å’Œ NVTï¼Œæœ«æ€æ¸©åº¦ç‰äºŽåˆæ€æ¸©åº¦ã€‚** 4. **当模拟体系ä¸å« langevin åŽŸåæ—¶ï¼Œå»ºè®®å°† langevin 原å对应的èµåŠ¿æ–‡ä»¶å˜æ”¾åœ¨è®¡ç®—目录,以é¿å…ç¨‹åºæ‰¾ä¸åˆ°èµåŠ¿æ–‡ä»¶æŠ¥é”™ E3058。** | | efieldå¤–åŠ ç”µåœºè®¡ç®— ========================================================================== 本节将以硅烯模型的能带计算为例,介ç»åœ¨DS-PAWä¸å¦‚ä½•è¿›è¡Œå¤–åŠ ç”µåœºè®¡ç®—ï¼Œåˆ†æžåŠ ç”µåœºå‰åŽå¸¦é𙿉“开情况。 硅烯真空方å‘å¤–åŠ ç”µåœºè®¡ç®—è¾“å…¥æ–‡ä»¶ ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`Efield.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`Efield.in` 如下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.sigma = 0.1 cal.cutoff = 520 cal.ksamping = G cal.kpoints = [9, 9, 1] scf.convergence = 1e-5 #outputs io.charge = false io.wave = false io.band = true corr.dipol=true corr.dipolDirection = c corr.dipolEfield = 0.2 band.kpointsLabel = [G,M,K,G] band.kpointsCoord = [0.00000000,0.00000000,0.00000000,0.50000000,0.00000000,0.00000000,0.33333333,0.33333333,0.00000000,0.00000000,0.00000000,0.00000000] band.kpointsNumber = [100,100,100] :guilabel:`Efield.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 该计算是在一æ¥èƒ½å¸¦è®¡ç®—çš„åŸºç¡€ä¸Šå¤–åŠ ç”µåœºï¼Œé™¤èƒ½å¸¦è®¡ç®—çš„åŸºæœ¬å‚æ•°ï¼Œæ–°å¢žå‚数为下: - ``corr.dipolEfield`` : è®¾ç½®å¤–åŠ ç”µåœºçš„å¤§å°ï¼Œè¯¥å‚æ•°åªåœ¨ ``corr.dipol = true`` 和设置 ``corr.dipolDirection`` 的情况下生效; :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 2 Lattice 3.860000 0.000000 0.000000 -1.930000 3.342860 0.000000 0.000000 0.000000 26.460000 Direct Si 0.333333 0.166667 0.396825 Si 0.666758 0.833380 0.379216 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`Efield.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW Efield.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` ç‰è¾“出文件。 :guilabel:`scf.h5` :自洽计算对应的 **h5** 输出文件,当io.band = true时, :guilabel:`scf.h5` 文件会写入能带数æ®ï¼› æ¤ä¾‹ä¸å‚æ•° ``corr.dipolEfield = 0.2`` ,å³å¤–åŠ ç”µåœºçš„å¤§å°ä¸º **0.2** eV/Å, 在该电场下进行能带计算得到的能带图如图(a)所示, .. figure:: ../imgs/phase3/Efield0.2.png :align: center :width: 500px .. centered:: (a) è‹¥è®¾ç½®å‚æ•° ``corr.dipolEfield = 0`` é‡å¤ä»¥ä¸Šè®¡ç®—,å³åœ¨æ— 电场的情况下进行能带计算得到的能带图如图(b)所示, .. figure:: ../imgs/phase3/Efield0.png :width: 500px :align: center .. centered:: (b) 对比图(a)和图(b)å¯å¾—ç»“è®ºï¼šé€šè¿‡å¤–åŠ ç”µåœºå¯ä»¥æ‰“开硅烯的带隙。 从 :guilabel:`DS-PAW.log` 文件å¯è¯»å‡ºåŠ ç”µåœºä¸Žä¸åŠ ç”µåœº **BandGap** 的值分别为 **0.1176** eV å’Œ **0.0010** eV 。 .. note:: 1. **å¤–åŠ ç”µåœºçš„å•ä½ eV/Ã… 为原åå—力的å•ä½** | | polarizationé“电计算 ========================================================================== 本节将以 :math:`HfO_{2}` 为例,介ç»åœ¨DS-PAWä¸å¦‚何使用现代æžåŒ–ç†è®ºè¿›è¡Œé“ç”µè®¡ç®—ï¼Œåˆ†æž :math:`HfO_{2}` çš„é“电æžåŒ–。 .. _1.20.1 :math:`HfO_{2}` é“电计算输入文件: :math:`HfO_{2}` é“电计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`polarization.in` 和一系列ä¸åŒç›¸ç»“构的结构文件 :guilabel:`structure.as` , :guilabel:`polarization.in` 如下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 3 cal.smearing = 4 cal.cutoff = 520 cal.ksamping = MP cal.kpoints = [4, 4, 4] scf.convergence = 1e-5 #outputs io.charge = false io.wave = false io.polarization = true :guilabel:`polarization.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 该计算是在自洽计算的基础上进行é“ç”µè®¡ç®—ï¼Œé™¤è‡ªæ´½è®¡ç®—çš„åŸºæœ¬å‚æ•°ï¼Œæ–°å¢žå‚数为下: - ``io.polarization`` : 控制自洽计算ä¸é“电计算的开关; :math:`HfO_{2}` æžåŒ–æ–¹å‘å‘下的é“电相结构 :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 12 Lattice 5.04621935 0.00000000 0.00000000 0.00000000 5.07315250 0.00000000 0.00000000 0.00000000 5.25768906 Cartesian Hf 1.34815269 1.22145222 0.17639072 Hf 1.34815269 3.75802848 2.45245381 Hf 3.69806665 1.22145222 2.80523525 Hf 3.69806665 3.75802848 5.08129834 O 0.35195212 1.93667284 1.92589951 O 0.35195212 4.47324910 0.70294502 O 2.32678304 2.48829365 3.85528783 O 2.32678304 5.02486989 4.03124575 O 2.71943629 5.02486989 1.40240122 O 2.71943629 2.48829365 1.22644331 O 4.69426723 1.93667284 4.55474404 O 4.69426723 4.47324910 3.33178954 .. figure:: ../imgs/phase3/ferri-down.png :align: center :width: 300px .. centered:: é“电相æžåŒ–æ–¹å‘å‘下 :math:`HfO_{2}` æžåŒ–æ–¹å‘å‘上的é“电相结构 :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 12 Lattice 5.04621935 0.00000000 0.00000000 0.00000000 5.07315250 0.00000000 0.00000000 0.00000000 5.25768906 Cartesian Hf 1.34815269 1.31512402 0.17639072 Hf 1.34815269 3.85170026 2.45245381 Hf 3.69806665 1.31512402 2.80523525 Hf 3.69806665 3.85170026 5.08129834 O 0.35195212 0.59990340 1.92589951 O 0.35195212 3.13647965 0.70294502 O 2.32678304 2.58485884 4.03124575 O 2.32678304 5.12143510 3.85528783 O 2.71943630 5.12143510 1.22644331 O 2.71943630 2.58485884 1.40240122 O 4.69426723 0.59990340 4.55474404 O 4.69426723 3.13647965 3.33178954 .. figure:: ../imgs/phase3/ferri-up.png :align: center :width: 300px .. centered:: é“电相æžåŒ–æ–¹å‘å‘上 在æžåŒ–å‘下和æžåŒ–å‘ä¸Šçš„ç»“æž„ä¸æ’入系列ä¸é—´è¿‡æ¸¡ç»“构,使用 **线性æ’值** (neb.linear_interpolate)的方法,具体å‚è§è¾…助工具 :guilabel:`neb_structure.py` 脚本,本例æ’å…¥ä¸é—´ç»“æž„ **11** ä¸ªï¼ŒåŒ…æ‹¬åˆæœ«æ€æžåŒ–相共 **13** ä¸ªæž„åž‹ï¼Œå¯¹æ‰€æœ‰æž„åž‹ä¾æ¬¡è¿›è¡ŒæžåŒ–计算。 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`polarization.in` å’Œå„ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ï¼Œå°†13个结构放入13ä¸ªç›®å½•ï¼Œä¾æ¬¡æŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW polarization.in` analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到13组 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` å’Œ :guilabel:`polarization.txt` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAWé“电计算之åŽå¾—到的日志文件; - :guilabel:`scf.h5` :自洽计算对应的 **h5** 输出文件,注æ„h5文件的å称与taskç±»åž‹ä¸¥æ ¼ä¸€è‡´ã€‚h5文件解æžè§ :doc:`/output-hdf5` 部分; - :guilabel:`polarization.txt` : é“电æžåŒ–计算完æˆä¹‹åŽçš„ **txt** 文本文件,电åã€ç¦»å贡献的æžåŒ–éƒ¨åˆ†åŠæ€»çš„æžåŒ–é‡åæ•°å˜å‚¨åœ¨è¯¥æ–‡ä»¶ä¸ï¼Œä¾¿äºŽç”¨æˆ·å¿«é€ŸèŽ·å–ä¿¡æ¯ã€‚ 以æžåŒ–å‘下(00)é“电相体系为例,从 :guilabel:`polarization.txt` 文件å¯å¾— :math:`HfO_{2}` çš„é“电æžåŒ–æ•°æ®å¦‚下所示: +------------+---------------+------------+ | Total(x y z) ((μC/cm^2)) | +------------+---------------+------------+ | -0.000043| -8.715604 | -0.000002| +------------+---------------+------------+ | Quantum(x y z) (μC/cm^2) | +------------+---------------+------------+ | 60.067225 | 60.387821 | 62.584436| +------------+---------------+------------+ 以æžåŒ–å‘上(12)é“电相体系为例,从 :guilabel:`polarization.txt` 文件å¯å¾— :math:`HfO_{2}` çš„é“电æžåŒ–æ•°æ®å¦‚下所示: +------------+---------------+------------+ | Total(x y z) ((μC/cm^2)) | +------------+---------------+------------+ | -0.000049| 8.715446 | 0.000001| +------------+---------------+------------+ | Quantum(x y z) (μC/cm^2) | +------------+---------------+------------+ | 60.067225 | 60.387821 | 62.584436| +------------+---------------+------------+ å¯ä½¿ç”¨ :guilabel:`PolaTotal.py` 脚本对写入æžåŒ–æ•°æ®çš„ :guilabel:`scf.h5` 文件进行数æ®å¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。对13组é“电计算的数æ®è¿›è¡Œå¤„ç†ï¼Œå¾—到结果图如下: .. figure:: ../imgs/phase3/ferri-Pola.png :width: 600px :align: center .. centered:: 13组结构对应æžåŒ–数值 上图为ç»è¿‡æžåŒ–é‡å周期性æ¢ç®—得到的x, y ,z 三个方å‘çš„æžåŒ–强度Px, Py, Pzã€‚å› :math:`HfO_{2}` æžåŒ–æ–¹å‘为yæ–¹å‘,Px, Pz数值ä¸éšåŽŸåä½ç§»è€Œæ”¹å˜ã€‚ | å–Pyæ–¹å‘æžåŒ–数最接近0的一组数æ®åˆ†æžï¼Œ :math:`HfO_{2}` çš„æžåŒ–强度值为é“电相(æžåŒ–å‘下,åºå·00 或 æžåŒ–å‘上,åºå·12)与ä¸å¿ƒå¯¹ç§°ç›¸ï¼ˆè¿‡æ¸¡æ€ï¼Œåºå·06)的æžåŒ–æ•°ä¹‹å·®ï¼Œç»“åˆ :guilabel:`polarization.txt` 文件åŠå¦‚上æžåŒ–æ•°æ®å›¾ï¼Œæ±‚得: | 00 与 06 构型的æžåŒ–差值为 **-69.103 μC/cm^2** | 12 与 06 构型的æžåŒ–差值为 **69.103 μC/cm^2** | é‚, :math:`HfO_{2}` çš„æžåŒ–强度值为 **69.103 μC/cm^2** | bader电è·è®¡ç®— ========================================================================== 本节将以NaCl晶体为例,介ç»åœ¨DS-PAWä¸å¦‚何进行bader电è·è®¡ç®—,分æžNaCl体系ä¸å„原å的价æ€åˆ†å¸ƒã€‚ :math:`NaCl` 晶体Bader电è·è®¡ç®—输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`bader.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`bader.in` 如下: :guilabel:`bader.in` 文件å‚考如下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [10, 10, 10] cal.cutoff = 650 #outputs io.charge = true io.wave = false io.bader = true :guilabel:`bader.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 该计算是在自洽计算的基础上进行bader电è·è®¡ç®—ï¼Œé™¤è‡ªæ´½è®¡ç®—çš„åŸºæœ¬å‚æ•°ï¼Œæ–°å¢žå‚数为下: - ``io.bader`` : 控制自洽计算ä¸bader电è·è®¡ç®—的开关; :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 8 Lattice 5.68452692 0.00000000 0.00000000 0.00000000 5.68452692 0.00000000 0.00000000 0.00000000 5.68452692 Cartesian Na 4.26339519 1.42113173 1.42113173 Na 1.42113173 4.26339519 1.42113173 Na 1.42113173 1.42113173 4.26339519 Na 4.26339519 4.26339519 4.26339519 Cl 1.42113173 1.42113173 1.42113173 Cl 4.26339519 4.26339519 1.42113173 Cl 4.26339519 1.42113173 4.26339519 Cl 1.42113173 4.26339519 4.26339519 .. note:: 1. **io.bader = true 时,io.charge 必须设置为true** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`bader.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW bader.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` 〠:guilabel:`bader.txt` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW bader电è·è®¡ç®—之åŽå¾—到的日志文件; - :guilabel:`scf.h5` :自洽计算对应的 **h5** 输出文件,注æ„h5文件的å称与taskç±»åž‹ä¸¥æ ¼ä¸€è‡´ã€‚h5文件解æžè§å…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; - :guilabel:`bader.txt` : bader电è·è®¡ç®—完æˆä¹‹åŽçš„ **txt** 文本文件,该文件写入baderç”µè·æ•°æ®ï¼Œä¾¿äºŽç”¨æˆ·å¿«é€ŸèŽ·å–ä¿¡æ¯ã€‚ :guilabel:`bader.txt` 文本内容如下所示,bader电è·åˆ†æžå¾—到的数æ®ä¸Žutexas大å¦çš„Henkelmanå°ç»„得到的 `æ•°æ®`_ å»åˆã€‚ .. _æ•°æ®: https://theory.cm.utexas.edu/henkelman/code/bader/ Total number of valence electronics: 64 +-----------+-------------+--------------+-----------+-----------+---------------+----------------+ | Element | X | Y | Z | Charge | AtomicVolume | MinDistance | +-----------+-------------+--------------+-----------+-----------+---------------+----------------+ | Cl | 0.25 | 0.25 | 0.25| 7.85852 | 35.893 | 1.65799 | +-----------+-------------+--------------+-----------+-----------+---------------+----------------+ | Cl | 0.75 | 0.75 | 0.25| 7.85704 | 35.83 | 1.65799 | +-----------+-------------+--------------+-----------+-----------+---------------+----------------+ | Cl | 0.75 | 0.25 | 0.75| 7.84024 | 35.0495 | 1.65799 | +-----------+-------------+--------------+-----------+-----------+---------------+----------------+ | Cl | 0.25 | 0.75 | 0.75| 7.87537 | 36.6765 | 1.65799 | +-----------+-------------+--------------+-----------+-----------+---------------+----------------+ | Na | 0.75 | 0.25 | 0.25| 8.14221 | 10.0598 | 1.10532 | +-----------+-------------+--------------+-----------+-----------+---------------+----------------+ | Na | 0.25 | 0.75 | 0.25| 8.14223 | 10.0607 | 1.10532 | +-----------+-------------+--------------+-----------+-----------+---------------+----------------+ | Na | 0.25 | 0.25 | 0.75| 8.14221 | 10.0598 | 1.10532 | +-----------+-------------+--------------+-----------+-----------+---------------+----------------+ | Na | 0.75 | 0.75 | 0.75| 8.14221 | 10.0598 | 1.10532 | +-----------+-------------+--------------+-----------+-----------+---------------+----------------+ | | bandunfoldingèƒ½å¸¦åæŠ˜å 计算 ========================================================================== 本节将以 :math:`Cu_{3}Au` 体系为例,介ç»åœ¨DS-PAWä¸å¦‚ä½•è¿›è¡Œèƒ½å¸¦åæŠ˜å è®¡ç®—ï¼Œåˆ†æž :math:`Cu_{3}Au` åæŠ˜å 的能带图。 :math:`Cu_{3}Au` èƒ½å¸¦åæŠ˜å 计算输入文件 ------------------------------------------------------ èƒ½å¸¦åæŠ˜å è®¡ç®—éœ€ä¸¤æ¥æ³•完æˆèƒ½å¸¦è®¡ç®—ï¼Œå› æ¤è¾“入文件包å«å‚数文件 :guilabel:`scf.in` 〠:guilabel:`bandunfolding.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 如下: .. code-block:: :linenos: task = scf sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none cal.methods = 1 cal.smearing = 1 cal.ksamping = MP cal.kpoints = [3, 3, 3] cal.cutoff = 650 scf.convergence = 1.0e-05 io.charge = true io.wave = false :guilabel:`bandunfolding.in` 如下: .. code-block:: :linenos: task = band cal.iniCharge = ./rho.bin sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none cal.methods = 1 cal.smearing = 1 cal.ksamping = MP cal.kpoints = [3, 3, 3] cal.cutoff = 500 scf.convergence = 1.0e-05 band.unfolding = true band.primitiveUVW=[0.0, 0.5, 0.5, 0.5, 0.0, 0.5, 0.5, 0.5, 0.0] band.kpointsLabel= [R,G,X] band.kpointsCoord= [0.5, 0.5, 0.5, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5] band.kpointsNumber= [101, 101] io.charge = false io.wave = false :guilabel:`bandunfolding.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š èƒ½å¸¦åæŠ˜å 计算是在能带计算的基础上完æˆçš„ï¼Œä¸”èƒ½å¸¦è®¡ç®—å¿…é¡»é€šè¿‡ä¸¤æ¥æ³•完æˆã€‚é™¤èƒ½å¸¦è®¡ç®—çš„åŸºæœ¬å‚æ•°ï¼Œæ–°å¢žå‚数为下: - ``band.unfolding`` : 控制能带计算ä¸èƒ½å¸¦å折å 计算的开关; - ``band.primitiveUVW`` : 设置UVWç³»æ•°ï¼Œè¶…èƒžçš„æ™¶æ ¼çŸ¢é‡ä¹˜ä¸ŠUVW系数ç‰äºŽåŽŸèƒžçš„æ™¶æ ¼çŸ¢é‡ï¼Œç”¨äºŽæŽ§åˆ¶èƒ½å¸¦å折å çš„å‚æ•°ï¼› :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 4 Lattice 3.7530000210 0.0000000000 0.0000000000 0.0000000000 3.7530000210 0.0000000000 0.0000000000 0.0000000000 3.7530000210 Direct Au 0.000000000 0.000000000 0.000000000 Cu 0.000000000 0.500000000 0.500000000 Cu 0.500000000 0.000000000 0.500000000 Cu 0.500000000 0.500000000 0.000000000 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`scf.in` 〠:guilabel:`bandunfolding.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW scf.in` ,自洽计算完æˆåŽæ‰§è¡Œ :guilabel:`DS-PAW bandunfolding.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` 〠:guilabel:`band.h5` ç‰è¾“出文件。 :guilabel:`band.h5` :能带计算对应的 **h5** 输出文件,相比能带计算该文件新增 **UnfoldingBandInfo** 部分,具体结构解æžè§ :doc:`/output-hdf5` 部分。 å¯ä½¿ç”¨è„šæœ¬ :guilabel:`bandunfolding.py` 对 :guilabel:`band.h5` 进行数æ®å¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。该例得到的能带效果图应如下所示,与文献报é“结果\ :footcite:p:`PhysRevB.98.245421` 一致。 .. figure:: ../imgs/phase3/band-unfolding.png :align: center | | | epsilon介电常数计算 ========================================================================== 本节将以Si体系为例,介ç»åœ¨DS-PAWä¸å¦‚何进行介电常数计算。 :math:`Si` 介电常数计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`epsilon.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`epsilon.in` 如下: .. code-block:: :linenos: # task type task = epsilon #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [5, 5, 5] cal.cutoff = 500 scf.convergence = 1.0e-7 :guilabel:`epsilon.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š 介电常数的计算å¯é€šè¿‡ç›´æŽ¥æŒ‡å®š **task** 完æˆï¼Œæ–°å¢žtaskçš„å¯é€‰å€¼å¦‚下: - ``task`` : 设置计算类型,新增 **epsilon** 傿•°ï¼Œæ¤å¤„对应介电常数的计算; .. note:: 在 ``task = phonon`` 且 ``phonon.method = dfpt`` 时也å¯å®Œæˆä»‹ç”µå¸¸æ•°çš„è®¡ç®—ï¼Œé€šè¿‡æ·»åŠ ``phonon.dfptEpsilon = true`` 傿•°å³å¯ã€‚ :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 8 Lattice 5.43070000 0.00000000 0.00000000 0.00000000 5.43070000 0.00000000 0.00000000 0.00000000 5.43070000 Cartesian Si 0.67883750 0.67883750 0.67883750 Si 3.39418750 3.39418750 0.67883750 Si 3.39418750 0.67883750 3.39418750 Si 0.67883750 3.39418750 3.39418750 Si 2.03651250 2.03651250 2.03651250 Si 4.75186250 4.75186250 2.03651250 Si 4.75186250 2.03651250 4.75186250 Si 2.03651250 4.75186250 4.75186250 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`epsilon.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW epsilon.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`epsilon.h5` 〠:guilabel:`epsilon.txt` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW介电常数计算之åŽå¾—到的日志文件; - :guilabel:`epsilon.h5` :介电常数计算对应的 **h5** 输出文件,具体的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; - :guilabel:`epsilon.txt` : 介电常数计算完æˆä¹‹åŽçš„ **txt** 文本文件,该文件写入介电常数相关数æ®ï¼Œä¾¿äºŽç”¨æˆ·å¿«é€ŸèŽ·å–ä¿¡æ¯ã€‚ 从 :guilabel:`epsilon.txt` 文件ä¸å¯èŽ·å–如下数æ®ï¼š +---------------+-------------+-------------+ |Total Part | +---------------+-------------+-------------+ | 13.309902 | 0.000000| -0.000000 | +---------------+-------------+-------------+ | -0.000000 | 13.309902| -0.000000| +---------------+-------------+-------------+ | -0.000000 | 0.000000| 13.309902| +---------------+-------------+-------------+ 分æžä¸Šè¡¨å¯å¾—该体系的介电常数为 **13.309902** ,与文献报é“值\ :footcite:p:`PhysRevB.73.045112` **13.31** 一致。 | | piezoåŽ‹ç”µå¼ é‡è®¡ç®— ========================================================================== 本节将以AlN体系为例,介ç»åœ¨DS-PAWä¸å¦‚ä½•è¿›è¡ŒåŽ‹ç”µå¼ é‡è®¡ç®—ï¼Œå¾—åˆ°ææ–™çš„压电系数 :math:`e_{33} (0)`。 :math:`AlN` åŽ‹ç”µå¼ é‡è®¡ç®—输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`piezo.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`piezo.in` 如下: .. code-block:: :linenos: task = epsilon #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [10, 10, 10] cal.cutoffFactor = 1.5 scf.convergence = 1.0e-7 #outputs io.charge = false io.wave = false :guilabel:`piezo.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š - ``task`` : 设置计算类型,新增 **epsilon** 傿•°ï¼Œæ¤å¤„å¯¹åº”åŽ‹ç”µå¼ é‡è®¡ç®—ï¼› - ``scf.convergence`` : è®¾ç½®ä»‹ç”µå¼ é‡è®¡ç®—ç”µåæ”¶æ•›çš„精度,建议æé«˜ç²¾åº¦ï¼Œæ¤å¤„设置为1.0e-7ï¼› :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 8 Lattice 3.11606630 0.00000000 0.00000000 0.00000000 5.39683518 0.00000000 0.00000000 0.00000000 5.00770902 Cartesian Al 0.00000000 3.59735137 0.00946380 Al 0.00000000 1.79945276 2.51320124 Al 1.55803315 0.89899597 0.00945662 Al 1.55803315 4.49786165 2.51308138 N 0.00000000 3.59851112 1.91845914 N 0.00000000 1.79831356 4.42266820 N 1.55803315 0.90013952 1.91851680 N 1.55803315 4.49672497 4.42258192 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`piezo.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW piezo.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`epsilon.h5` 〠:guilabel:`epsilon.txt` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAWåŽ‹ç”µå¼ é‡è®¡ç®—之åŽå¾—到的日志文件; - :guilabel:`epsilon.h5` :介电常é‡è®¡ç®—对应的 **h5** 输出文件,具体的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; - :guilabel:`epsilon.txt` : 压电计算完æˆä¹‹åŽçš„ **txt** 文本文件,该文件写入压电相关数æ®ï¼Œä¾¿äºŽç”¨æˆ·å¿«é€ŸèŽ·å–ä¿¡æ¯ã€‚ 从 :guilabel:`epsilon.txt` 文件ä¸å¯èŽ·å–如下数æ®ï¼š +-----------------+-------------+-------------+-------------+--------------+------------------+ |Piezoelectric Tensor (C/m^2)( Row: x y z Column: XX YY ZZ XY YZ ZX) | +-----------------+-------------+-------------+-------------+--------------+------------------+ |Electronic Part | +-----------------+-------------+-------------+-------------+--------------+------------------+ | 0.000000 | 0.000000 | 0.000000 | 0.000006| 0.000000| 0.336610 | +-----------------+-------------+-------------+-------------+--------------+------------------+ | -0.000001 | 0.000007 | 0.000003 | 0.000000| 0.336662| 0.000000 | +-----------------+-------------+-------------+-------------+--------------+------------------+ | 0.266339 | 0.265888 | -0.419569 | 0.000000| -0.000014| 0.000000 | +-----------------+-------------+-------------+-------------+--------------+------------------+ |Ionic Part: | +-----------------+-------------+-------------+-------------+--------------+------------------+ | -0.000004 | 0.000002 | 0.000002 | 0.000032| -0.000000| -0.681702 | +-----------------+-------------+-------------+-------------+--------------+------------------+ | -0.000163 | -0.000239 | 0.000314 | -0.000000| -0.699012| -0.000000 | +-----------------+-------------+-------------+-------------+--------------+------------------+ | -0.911456 | -0.913265 | 1.943887 | -0.000000| -0.000633| -0.000000 | +-----------------+-------------+-------------+-------------+--------------+------------------+ |Total Part: | +-----------------+-------------+-------------+-------------+--------------+------------------+ | -0.000004 | 0.000002 | 0.000002 | 0.000039| -0.000000| -0.345092 | +-----------------+-------------+-------------+-------------+--------------+------------------+ | -0.000164 | -0.000232 | 0.000317 | -0.000000| -0.362350| -0.000000 | +-----------------+-------------+-------------+-------------+--------------+------------------+ | -0.645117 | -0.647377 | 1.524318 | -0.000000| -0.000647| -0.000000 | +-----------------+-------------+-------------+-------------+--------------+------------------+ 分æžä¸Šè¡¨å¯å¾—åŽ‹ç”µå¼ é‡ç”µå贡献部分 :math:`e_{33} (0)` 的数值为 **-0.419569** :math:`C/m^{2}` ï¼Œæ€»çš„åŽ‹ç”µå¼ é‡ :math:`e_{33}` 的数值为 **1.524318** :math:`C/m^{2}` ,与文献å‚考值\ :footcite:p:`PhysRevB.56.R10024` **-0.47** :math:`C/m^{2}` å’Œ **1.46** :math:`C/m^{2}` 接近。 | | fixcell固定基矢弛豫计算 ========================================================================== 本节将以 :math:`MoS_{2}` 体系为例,介ç»åœ¨DS-PAWä¸å¦‚ä½•è¿›è¡Œå›ºå®šæ™¶æ ¼å¼›è±«è®¡ç®—ã€‚ :math:`MoS_{2}` 固定基矢弛豫计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`relax.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`relax.in` 如下: .. code-block:: :linenos: # task type task = relax #system related sys.structure = structure.as sys.symmetry = false sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.cutoff = 650 cal.kpoints = [19, 19, 5] #relax related relax.freedom = all relax.convergence = 0.05 relax.methods = CG :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 6 Lattice Fix_x Fix_y Fix_z 3.19031572 0.00000000 0.00000000 F T T -1.59515786 2.76289446 0.00000000 F F T 0.00000000 0.00000000 14.87900448 T T T Cartesian S 0.00000000 1.84193052 12.72413785 S 1.59515943 0.92096386 5.28463561 S 0.00000000 1.84193052 9.59436887 S 1.59515943 0.92096386 2.15486663 Mo 1.59515943 0.92096386 11.15925336 Mo 0.00000000 1.84193052 3.71975112 :guilabel:`structure.as` æ ‡ç¾è®¾ç½®ä»‹ç»ï¼š 固定晶胞维度进行弛豫计算需在 :guilabel:`structure.as` æ–‡ä»¶ä¸æ–°å¢žå›ºå®šæ ‡ç¾ï¼Œç±»ä¼¼äºŽå›ºå®šåŽŸå弛豫的设置(在原ååæ ‡åŽæ·»åŠ Fixæ ‡ç¾ï¼‰ï¼Œå›ºå®šåŸºçŸ¢éœ€åœ¨ :guilabel:`structure.as` 的第三行 **Lattice** åŽæ·»åŠ Fixæ ‡ç¾ï¼Œæœ¬æ¡ˆä¾‹çš„æ ‡ç¾å¯¹åº”固定晶胞的c边和a边的yã€zæ–¹å‘ã€b边的zæ–¹å‘。 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`relax.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW relax.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`relax.h5` 〠:guilabel:`latestStructure.as` ç‰è¾“出文件。 - :guilabel:`relax.h5` :弛豫计算对应的 **h5** 输出文件; - :guilabel:`latestStructure.as` :弛豫终点的as结构文件,å¯ç›´æŽ¥æŸ¥çœ‹æ•°æ®ï¼› å°† :guilabel:`latestStructure.as` æ‹–å…¥Device Studio查看结构,或直接打开该文件,å¯å¾—弛豫结æŸåŽçš„结构数æ®å¦‚下: .. code-block:: :linenos: Total number of atoms 6 Lattice 3.19696732 0.00000000 0.00000000 -1.59848077 2.76865753 0.00000000 0.00000000 0.00000000 14.87900448 Direct Mo 0.66666701 0.33333316 0.74999995 Mo 0.33333340 0.66666675 0.24999997 S 0.33333340 0.66666666 0.85535854 S 0.66666686 0.33333303 0.35535875 S 0.33333367 0.66666699 0.64464148 S 0.66666708 0.33333333 0.14464130 通过对比å¯å¾—å¼›è±«å‰ a = b = **3.19031572** ,弛豫åŽå˜æˆäº†a = b = **3.19696732** ,而c = **14.87900448** ä¸å˜ã€‚ | | thermal声åçƒåЛ妿€§è´¨è®¡ç®— ========================================================================== 本节将以Si体系为例,介ç»åœ¨DS-PAWä¸å¦‚何进行声åçƒåЛ妿€§è´¨è®¡ç®—。 :math:`Si` 声åçƒåЛ妿€§è´¨è®¡ç®—输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`phonon-thermal.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`phonon-thermal.in` 如下: .. code-block:: :linenos: # task type task = phonon #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [5, 5, 5] cal.cutoffFactor = 1.5 scf.convergence = 1.0e-7 #phonon related phonon.structureSize = [2,2,2] phonon.type =dos phonon.qpoints = [31,31,31] phonon.method = dfpt phonon.thermal=true phonon.thermalRange = [0,1000,10] :guilabel:`phonon-thermal.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š - ``phonon.thermal`` : 控制声å计算ä¸çƒåŠ›å¦è®¡ç®—的开关,仅在phonon.method = dfpt时生效; - ``phonon.thermalRange`` : 设置çƒåŠ›å¦è®¡ç®—çš„æ¸©åº¦èŒƒå›´åŠæ•°æ®å˜å‚¨é—´éš”ï¼› :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 2 Lattice 0.00 2.75 2.75 2.75 0.00 2.75 2.75 2.75 0.00 Direct Si -0.125000000 -0.125000000 -0.125000000 Si 0.125000000 0.125000000 0.125000000 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`phonon-thermal.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW phonon-thermal.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`phonon.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW声å计算得到的日志文件; - :guilabel:`phonon.h5` :DS-PAW声å计算对应的 **h5** 输出文件,打开çƒåŠ›å¦è®¡ç®—的开关,生æˆçš„ :guilabel:`phonon.h5` 文件ä¸ä¼šå†™å…¥ **ThermalInfo** æ•°æ®ï¼Œå…·ä½“è§£æžè§ :doc:`/output-hdf5` 部分。 å¯ä½¿ç”¨ :guilabel:`phonon_thermal.py` 脚本对声åçƒåЛ妿•°æ®è¿›è¡Œå¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。分æžçƒåЛ妿•°æ®ï¼Œå¯å¾—熵ã€çƒå®¹ã€äº¥å§†éœå…¹è‡ªç”±èƒ½éšæ¸©åº¦å˜åŒ–的曲线如下所示,与phonony git仓库展示的 `结果`_ 一致: .. _结果: https://phonopy.github.io/phonopy/examples#thermal-properties .. figure:: ../imgs/phase3/phonon-thermal.png :height: 600px :align: center | | solid state NEB计算 ========================================================================== 本节将以HfZrO体系为例,介ç»åœ¨DS-PAWä¸å¦‚何放开晶胞弛豫进行solid state NEB计算。 :math:`HfZrO` Solid state NEB计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`ssneb.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`ssneb.in` 如下: .. code-block:: :linenos: task = neb sys.structure = structure.as sys.functional = LDA sys.spin = none sys.symmetry = false cal.ksamping = G cal.kpoints = [10,10,10] cal.cutoff = 650 cal.methods = 1 cal.smearing = 1 cal.sigma = 0.05 scf.mixType = Broyden scf.mixBeta = 0.4 scf.convergence = 1e-6 scf.max = 300 neb.springK = 5 neb.images = 6 neb.iniFin = true neb.method = QM2 neb.convergence = 0.01 neb.max = 500 neb.freedom = all io.wave = false io.charge = false :guilabel:`ssneb.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š - ``neb.freedom`` : 设置过渡æ€å¼›è±«çš„维度,设置为all对应弛豫晶胞大å°ï¼› - ``neb.method`` : è®¾ç½®è¿‡æ¸¡æ€æœå¯»çš„æ–¹æ³•,当 neb.freedom = all æ—¶è¯¥å‚æ•°å¯é€‰å€¼ä¸ºQM2å’ŒFIRE; :guilabel:`structure.as` 需æä¾›å¤šä¸ªï¼Œåˆæ€ç»“æž„ :guilabel:`structure00.as` å‚考如下 .. code-block:: :linenos: Total number of atoms 12 Lattice 5.00209138 0.00000009 0.00000004 0.00000009 5.00209143 -0.00000004 0.00000004 -0.00000004 5.07896990 Cartesian Hf 2.50104558 2.50104575 0.00000000 Hf 0.00000000 0.00000000 0.00000000 O 3.75156841 1.25052303 1.47285183 O 3.75156857 3.75156869 1.04735062 O 1.25052293 1.25052297 3.60611823 O 1.25052286 3.75156867 4.03161932 O 1.25052287 3.75156860 1.47285187 O 1.25052275 1.25052294 1.04735054 O 3.75156850 1.25052287 4.03161945 O 3.75156850 3.75156869 3.60611821 Zr 2.50104577 0.00000000 2.53948497 Zr 0.00000000 2.50104594 2.53948491 末æ€ç»“æž„ :guilabel:`structure07.as` å‚考如下 .. code-block:: :linenos: Total number of atoms 12 Lattice 4.98221520 -0.00002552 0.00036684 -0.00002562 4.99587652 0.00005905 0.00039053 0.00006126 5.18258321 Cartesian Hf 2.30823006 2.49975412 0.04967381 Hf 0.00919001 0.00195723 0.38722458 O 4.03365086 0.66419181 2.12958714 O 4.00001549 3.18954023 0.89210846 O 0.95871628 1.24120307 4.04442128 O 0.94984693 3.74053908 4.19050825 O 1.35895285 3.73907584 1.57483409 O 1.36804279 1.24264997 1.42944278 O 3.29999107 0.69159253 4.72728663 O 3.26626721 3.16200890 3.48972595 Zr 2.31915914 0.00841995 2.97686955 Zr 4.98082249 2.50639160 2.64290889 åˆæœ«æ€æž„型在 **Device Studio** 䏿˜¾ç¤ºå¦‚下: .. figure:: ../imgs/phase3/neb-ini.png :align: center :width: 300px .. centered:: åˆæ€T相构型 .. figure:: ../imgs/phase3/neb-fin.png :align: center :width: 300px .. centered:: 末æ€F相构型 .. note:: 1. 在 ``neb.freedom = all`` 时, ``neb.method`` å¯é€‰å€¼ä¸º **QM2** 或 **FIRE** 2. **ä¸é—´ç»“构的生æˆå¯è°ƒç”¨â€œè¾…助工具使用教程-过渡æ€éƒ¨åˆ†â€çš„neb_interpolate_structures.pyè„šæœ¬ï¼Œå®Œæˆæ’值å¯è°ƒç”¨neb_visualize.py脚本对æ’值结构进行预览,å¯è°ƒç”¨calc_dist.py脚本查看image之间的è·ç¦»æ˜¯å¦åˆç†ã€‚** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`ssneb.in` å’ŒåŒ…å« :guilabel:`structureNo.as` æ–‡ä»¶çš„å¤šä¸ªæ–‡ä»¶å¤¹ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW ssneb.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽï¼š >> åˆæ€å’Œæœ«æ€ç»“构所在文件夹会生æˆè‡ªæ´½è®¡ç®—所得的 :guilabel:`DS-PAW.log` ã€:guilabel:`latestStructure00.as` 〠:guilabel:`scf.h5` ç‰è¾“出文件; >> ä¸é—´ç»“æž„ :guilabel:`structureNo.as` 所在文件夹 ``No`` (å‚与过渡æ€è®¡ç®—çš„ä¸é—´ç»“构所在文件夹,ä¸é—´ç»“构的个数由 ``neb.images`` 傿•°å†³å®šï¼‰ä¼šç”Ÿæˆç»“构优化所得的 :guilabel:`nebNo.h5` 〠:guilabel:`latestStructureNo.as` ç‰è¾“出文件; >> æœ€å¤–å±‚ç›®å½•å°†ä¼šç”Ÿæˆ :guilabel:`DS-PAW.log` 〠:guilabel:`neb.h5` è¿™2ä¸ªæ–‡ä»¶ï¼Œå…¶ä¸ :guilabel:`neb.h5` 为 ``No`` æ–‡ä»¶å¤¹ä¸‹å„ :guilabel:`nebNo.h5` æ–‡ä»¶çš„ä¿¡æ¯æ±‡æ€»ã€‚ - :guilabel:`DS-PAW.log` :DS-PAW过渡æ€è®¡ç®—之åŽå¾—到的日志文件; - :guilabel:`neb.h5` :过渡æ€è®¡ç®—完æˆä¹‹åŽçš„ **h5** æ•°æ®æ–‡ä»¶ï¼›æ¤æ—¶ååº”åæ ‡åŠèƒ½é‡å˜åŒ–ç‰æ•°æ®è¢«ä¿å˜åœ¨ :guilabel:`neb.h5` ä¸ï¼Œå…·ä½“的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ **python** 脚本 :guilabel:`neb.py` 对neb计算的结果进行分æžï¼Œéœ€åœ¨å®Œæ•´çš„neb计算目录下执行分æžè„šæœ¬ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` 部分。处ç†å¾—到的å应势垒曲线效果应如下所示: .. figure:: ../imgs/phase3/neb-optcell.png :height: 750px :align: center | | solvation溶剂化能计算 ========================================================================== 本节将以 :math:`H_{2}O` 体系为例,介ç»åœ¨DS-PAWä¸å¦‚何计算éšå¼æº¶å‰‚模型下的溶剂化能。 :math:`H_{2}O` 溶剂化能计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`scf.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`scf.in` 如下: .. code-block:: :linenos: # task type task = scf #system related sys.structure = structure.as sys.symmetry = true sys.functional = PBE sys.spin = none #scf related cal.methods = 1 cal.smearing = 3 cal.sigma = 0.2 cal.ksamping = G cal.kpoints = [1, 1, 1] cal.supGrid = true cal.cutoff = 800 scf.convergence = 1.0e-6 #implicit solvation model sys.sol = true sys.solEpsilon = 80 sys.solTAU = 5.25E-4 #outputs io.charge = false io.wave = false io.boundCharge = true :guilabel:`scf.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š - ``sys.sol`` : 控制引入éšå¼æº¶å‰‚化模型的开关,true则考虑溶剂化效应; - ``sys.solEpsilon`` : 设置溶剂介电常数大å°ï¼Œæ¤ä¾‹è®¾ç½®ä¸º80ï¼› - ``sys.solTAU`` : 指定å•ä½é¢ç§¯çš„æœ‰æ•ˆç•Œé¢å¼ 力的大å°ï¼Œå•ä½eV/Ã…^2,默认值为5.25E-4ï¼Œè¯¥å‚æ•°å»ºè®®è®¾ç½®ä¸ºå°äºŽ1e-3的数值; - ``io.boundCharge`` : 控制溶剂æŸç¼šç”µè·å¯†åº¦æ–‡ä»¶è¾“出的开关。 结构文件 :guilabel:`structure.as` å‚考如下 .. code-block:: :linenos: Total number of atoms 3 Lattice 10.00000000 0.00000000 0.00000000 0.00000000 10.00000000 0.00000000 0.00000000 0.00000000 10.00000000 Cartesian H 5.63934499 4.89541998 4.58224001 H 4.36065501 5.11499002 5.45934003 O 4.65002501 4.88500998 4.54065997 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`scf.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW scf.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` 〠:guilabel:`rhoBound.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAWéšå¼æº¶å‰‚化模型计算之åŽå¾—到的日志文件; - :guilabel:`scf.h5` :自洽计算对应的 **h5** 输出文件; - :guilabel:`rhoBound.h5` ï¼šä½¿ç”¨éšæ€§æº¶å‰‚模型计算得到的溶剂æŸç¼šç”µè·å¯†åº¦æ–‡ä»¶ï¼› æ¤ä¾‹è®¡ç®—å¯å¾—到考虑溶剂化能的总能 :math:`E_{sol}` ,溶剂化能计算公å¼å¦‚下: Solvation Energy=E(sys.sol=true)-E(sys.sol=false) æ ¹æ®è¯¥å…¬å¼å¯çŸ¥ï¼Œéœ€å¦è¿›è¡Œsys.sol = false的计算以获得ä¸è€ƒè™‘溶剂化能的总能 :math:`E_{nosol}`,将 :math:`E_{nosol}` 代入以上公å¼å¯å¾—水的溶剂化能为 **-0.313** eV,与文献\ :footcite:p:`mathew2014implicit` 报é“的结果一致。 使用éšå¼æº¶å‰‚化模型进行计算时,å¯ä»¥åŒæ—¶å¾—到溶质周围的溶剂æŸç¼šç”µè·å¯†åº¦åˆ†å¸ƒæ–‡ä»¶ :guilabel:`rhoBound.h5` ,å¯ä½¿ç”¨ **python** 脚本 :guilabel:`trans_rho.py` 对该文件进行åŽå¤„ç†ï¼Œå…·ä½“æ“ä½œè§ :doc:`/tools` éƒ¨åˆ†ã€‚è½¬æ¢æˆçš„å¯è§†åŒ–文件在VESTA䏿‰“开,å¯ä»¥å¾—到如下ç‰å¯†åº¦é¢åˆ†å¸ƒå›¾ï¼š .. figure:: ../imgs/phase3/rhoBound.png :align: center 从图ä¸å¯ä»¥çœ‹åˆ°ï¼Œæº¶å‰‚化的æ£è´Ÿå±è”½ç”µè·å¯†åº¦åˆ†å¸ƒåœ¨æ°´åˆ†å的外围,形æˆä¸€ä¸ªæº¶è§£å£³å±‚ï¼Œç¬¦åˆæ¨¡åž‹çš„预期,并与其它软件算得的溶剂æŸç¼šç”µè·å¯†åº¦åˆ†å¸ƒç±»ä¼¼ã€‚ | | fixedpotential固定电势计算 ========================================================================== 本节将以 :math:`Cu-slab` 体系为例,介ç»å¦‚何在DS-PAWä¸è¿›è¡Œå›ºå®šç”µåŠ¿è®¡ç®—ã€‚ :math:`Cu-slab` 固定电势计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`fixedP.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`fixedP.in` 如下: .. code-block:: :linenos: # task type task = scf sys.functional = PBE sys.structure = structure.as cal.ksamping = G cal.cutoff = 650 cal.sigma = 0.2 cal.smearing = 3 cal.kpoints = [7,7,1] scf.convergence = 1.0e-6 scf.max = 200 sys.sol = true sys.solEpsilon = 78.4 sys.solLambdaD = 3.04 sys.solTAU = 0 # Potential fixed sys.fixedP = true sys.fixedPPotential = 2.155 io.charge = true io.wave = false :guilabel:`fixedP.in` éƒ¨åˆ†è¾“å…¥å‚æ•°ä»‹ç»ï¼š - ``task`` : 设置计算类型,本例在task=scf时作固定电势计算; - ``sys.sol`` : 打开溶剂化模型,固定电势计算需在éšå¼æº¶å‰‚模型的基础上完æˆï¼› - ``sys.solEpsilon`` : 设置溶剂介电常数大å°ï¼Œæ¤ä¾‹è®¾ç½®ä¸º 78.4ï¼› - ``sys.solLambdaD`` : 使用泊æ¾çŽ»å°”å…¹æ›¼æ–¹ç¨‹ä¸”è®¾ç½®å¾·æ‹œé•¿åº¦ï¼ˆDebye length)的值,若ä¸è®¾ç½®ï¼Œåˆ™ä½¿ç”¨çš„æ˜¯æ³Šæ¾æ–¹ç¨‹ï¼Œæ²¡æœ‰æè¿°ç•Œé¢ç¦»å对é™ç”µåŠ¿çš„è´¡çŒ®ï¼› - ``sys.solTAU`` : 指定å•ä½é¢ç§¯çš„æœ‰æ•ˆç•Œé¢å¼ 力的大å°ï¼Œå•ä½eV/Ã…^2,默认值为5.25E-4ï¼Œè¯¥å‚æ•°å»ºè®®è®¾ç½®ä¸ºå°äºŽ1e-3的数值; - ``sys.fixedP`` : 打开固定电势计算的开关; - ``sys.fixedPPotential`` : è®¾ç½®å›ºå®šç”µåŠ¿çš„ç”µåŠ¿å€¼ï¼Œé»˜è®¤ä»¥æ ‡å‡†æ°¢ç”µæžç”µåŠ¿ï¼ˆSHE)作为å‚考电æžç”µåŠ¿ï¼Œè‹¥ä»¥é›¶ç”µè·ç”µä½ï¼ˆPotential of Zero Charge, PZC)作为å‚考电æžå¯è®¾ç½®å‚æ•° ``sys.fixedPType = PZC`` ï¼› .. note:: 1. 关于德拜长度 ``sys.solLambdaD``, 其表达å¼ä¸º :math:`\lambda_D = \sqrt\frac{\varepsilon \varepsilon_ok_B T}{2 c^0 z^2 q^2}` 1M 带+/-1电è·é˜´é˜³ç¦»å的水溶液的德拜长度为:3.04 Ã… :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 8 Lattice 3.63404989 0.00000000 0.00000000 0.00000000 3.63404989 0.00000000 0.00000000 0.00000000 23.62132454 Cartesian Cu 0.00000000 0.00000000 1.81702310 Cu 1.81702495 0.00000000 3.63404620 Cu 1.81702495 1.81702495 1.81702310 Cu 0.00000000 1.81702495 3.63404620 Cu 0.00000000 0.00000000 5.46390548 Cu 1.81702495 0.00000000 7.22885308 Cu 1.81702495 1.81702495 5.46390548 Cu 0.00000000 1.81702495 7.22885308 run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`fixedP.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW fixedP.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`scf.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW完æˆå›ºå®šç”µåŠ¿è®¡ç®—ä¹‹åŽå¾—到的日志文件; - :guilabel:`scf.h5` :taskç‰äºŽscfæ—¶DS-PAW对应的 **h5** 输出文件;具体的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; DS-PAW é‡‡ç”¨æœ€é€Ÿä¸‹é™æ³•进行固定电势计算,计算过程ä¸è¿ä»£ä½“ç³»çš„ç”µè·æ•°è¿›è¡Œå¤šæ¬¡è‡ªæ´½è®¡ç®—。 :guilabel:`DS-PAW.log` 文件会写入多次自洽计算的收敛过程,æ¤ä¾‹åœ¨ LOOP 5 达到收敛精度,如下展示 LOOP 5 结æŸä½“系对应的电势数值: .. code-block:: :linenos: ## FINISHED FIXEDPOTENTIAL LOOP 5 ## Electron : 149.993000 ElectrodePotential_SHE : 2.157747 V ElectrodePotential_PZC : 2.484286 V ElectrodePotential_SHE(PZC) : -0.326539 V Chemical Potential(electron) : -6.757747 eV Grand Total Energy(sigma->0) : -43088.518081 eV å…¶ä¸ | **Electron** 为è¿ä»£ç»ˆç‚¹ä½“ç³»çš„ç”µè·æ•°; | **ElectrodePotential_SHE** 为è¿ä»£ç»ˆç‚¹ä½“ç³»ç›¸å¯¹äºŽæ ‡å‡†æ°¢ç”µæžç”µåŠ¿çš„ç”µåŠ¿å€¼; | **ElectrodePotential_PZC** 为è¿ä»£ç»ˆç‚¹ä½“系相对于PZC的电势值; | **ElectrodePotential_SHE(PZC)** ç»™å‡ºä½“ç³»åœ¨ä¸æ€§æ¡ä»¶(å³PZC)下(相对于SHE)的电æžç”µåŠ¿å€¼ï¼› | **Chemical Potential(electron)** 给出è¿ä»£ç»ˆç‚¹ä½“系电å化å¦åŠ¿å€¼ï¼ˆä»¥éšå¼æº¶å‰‚模型模拟的溶液深处电势为零点); | **Grand Total Energy(sigma->0)** 给出è¿ä»£ç»ˆç‚¹ç”µåå·¨æ£åˆ™ç³»ç»¼ä¸‹çš„体系总能,与体系总能ã€ç”µåæ•°å˜åŒ–值ã€ç”µå化å¦åŠ¿å€¼ç›¸å…³ã€‚ è®¡ç®—ç»“æŸæ‰€å¾—体系的电势值为 **2.157** Vï¼Œä¸Žç›®æ ‡ç”µåŠ¿å€¼ **2.155** V 接近。 .. note:: 1. **进行固定电势计算时必须在éšå¼æº¶å‰‚æ¨¡åž‹ä¸‹è¿›è¡Œï¼Œå³ sys.fixedP = true 时,必须设置 sys.sol = true 。** 2. **ç›®å‰ï¼Œä»…在 task = scf 时支æŒå›ºå®šç”µåŠ¿è®¡ç®—ã€‚** 3. **ElectrodePotential_SHE=ElectrodePotential_PZC+ElectrodePotential_SHE(PZC)** | | wannieræ’值能带计算 ========================================================================== 本节将以 :math:`Si` 体系为例,介ç»å¦‚何在DS-PAWä¸ä½¿ç”¨wannier函数进行æ’值能带计算。 :math:`Si` æ’值能带计算输入文件 ------------------------------------------------------ 输入文件包å«å‚数文件 :guilabel:`wannier.in` 和结构文件 :guilabel:`structure.as` , :guilabel:`wannier.in` 如下: .. code-block:: :linenos: # task type task = wannier sys.structure = structure.as sys.symmetry = false sys.functional = PBE sys.spin = none cal.methods = 1 cal.smearing = 1 cal.ksamping = G cal.kpoints = [16,16,16] cal.totalBands = 12 #wannier related wannier.functions = 12 wannier.wannMaxIter = 20000 wannier.outStep = 50 #interpolated band related wannier.interpolatedBand = true wannier.kpointsLabel= [G,X,W,K,G,L] wannier.kpointsCoord= [0, 0, 0, 0.5, 0, 0.5, 0.5, 0.25, 0.75, 0.375, 0.375, 0.75, 0, 0, 0, 0.5, 0.5, 0.5] wannier.kpointsNumber = [100] io.charge = true io.wave = true :guilabel:`wannier.in` è¾“å…¥å‚æ•°ä»‹ç»ï¼š - ``task = wannier`` : 设置计算类型,新增å¯é€‰å€¼wannier,用于进行wannier计算; - ``wannier.functions`` : 设置wannier函数的个数; - ``wannier.wannMaxIter`` : 设置求解最大局域化wannier函数过程ä¸çš„æ€»è¿ä»£æ¬¡æ•°ï¼› - ``wannier.outStep`` :设置task=wannier时输出文件ä¸è¾“出è¿ä»£ç»“果的æ¥é•¿ï¼› - ``wannier.interpolatedBand`` : 控制æ’值能带计算的开关; - ``wannier.kpointsLabel`` : 设置wannierå‡½æ•°æ‹Ÿåˆæ’值能带时高对称点符å·ï¼› - ``wannier.kpointsCoord`` : 设置wannierå‡½æ•°æ‹Ÿåˆæ’å€¼èƒ½å¸¦æ—¶é«˜å¯¹ç§°ç‚¹åæ ‡ï¼› - ``wannier.kpointsNumber`` : 设置æ’值能带高对称 K 点之间的撒点数;æ¤ä¾‹è®¾ç½®å‚数为 wannier.kpointsNumber= [100] ,高对称点G与X之间撒点数为100ï¼Œä»¥æ¤æ±‚得撒点密度;对高对称点X与Wã€W与Kã€K与Gã€G与L之间进行ç‰å¯†åº¦æ’’点,实际撒点数å¯ä»ŽDS-PAW.logçš„å‚æ•°æ‰“å°éƒ¨åˆ†èŽ·å–ï¼› :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 2 Lattice 0.00 2.75 2.75 2.75 0.00 2.75 2.75 2.75 0.00 Direct Si -0.125000000 -0.125000000 -0.125000000 Si 0.125000000 0.125000000 0.125000000 .. note:: 1. **åˆå§‹æŠ•影的设置在 structure.as 文件ä¸å®Œæˆï¼Œé¦–先在第7è¡Œæ·»åŠ WannProj æ ‡ç¾ï¼Œç„¶åŽåœ¨åŽŸååæ ‡åŽå†™å…¥åˆå§‹æŠ•影轨é“åç§°**, DS-PAW å¯è¯†åˆ«çš„æŠ•影轨é“åç§°è§ :doc:`/input-update` çš„ wannier 部分。 2. **æ¤ä¾‹æœªè‡ªå®šä¹‰åˆå§‹æŠ•å½±ï¼Œç¨‹åºæ‰§è¡Œéšæœºé€‰æ‹©åˆå§‹æŠ•影。若需定义åˆå§‹æŠ•影,å¯å‚考下述写法。** 自定义åˆå§‹æŠ•影轨é“çš„ :guilabel:`structure.as` 文件å‚考如下: .. code-block:: :linenos: Total number of atoms 2 Lattice 0.00 2.75 2.75 2.75 0.00 2.75 2.75 2.75 0.00 Direct WannProj Si -0.125000000 -0.125000000 -0.125000000 [s,p,sp3-1,sp3-2] Si 0.125000000 0.125000000 0.125000000 [s,p,sp3-3,sp3-4] .. note:: 1. **自定义åˆå§‹æŠ•å½±è½¨é“æ—¶ï¼Œstructure.as æ–‡ä»¶ä¸æŠ•å½±è½¨é“æ€»æ•°éœ€ç‰äºŽwannier函数的个数(wannier.functions),å¦åˆ™ç¨‹åºæŠ¥é”™ã€‚** 2. **æ¤ä¾‹æ€»æŠ•影轨é“为 2*(1+3+1+1) = 12,与 wannier.functions = 12 傿•°è®¾ç½®ä¸€è‡´ã€‚** 3. **å¯¹æ— éœ€è®¾ç½®åˆå§‹æŠ•影轨é“的原åï¼Œåœ¨å¯¹åº”åæ ‡åŽå†™å…¥ [] å³å¯ã€‚** 4. **æ¤ä¾‹cal.totalBands设置为12ï¼Œå› æ¤æäº¤è®¡ç®—æ—¶éœ€è°ƒç”¨12æ ¸ã€‚** run程åºè¿è¡Œ ------------------------------------------------------ 准备好输入文件之åŽï¼Œå°† :guilabel:`wannier.in` å’Œ :guilabel:`structure.as` æ–‡ä»¶ä¸Šä¼ åˆ°æœåŠ¡å™¨ä¸Šè¿è¡Œï¼ŒæŒ‰ç…§ç»“构弛豫ä¸ä»‹ç»çš„æ–¹æ³•执行 :guilabel:`DS-PAW wannier.in` 。 analysisè®¡ç®—ç»“æžœåˆ†æž ------------------------------------------------------ æ ¹æ®ä¸Šè¿°çš„输入文件,计算完æˆä¹‹åŽå°†ä¼šå¾—到 :guilabel:`DS-PAW.log` 〠:guilabel:`wannier.h5` ç‰è¾“出文件。 - :guilabel:`DS-PAW.log` :DS-PAW完æˆwannieræ’值能带计算之åŽå¾—到的日志文件; - :guilabel:`wannier.h5` :wannier函数æ’值能带计算对应的 **h5** 输出文件;具体的数æ®ç»“æž„è¯¦è§ :doc:`/output-hdf5` 部分; å¯ä½¿ç”¨ :doc:`/tools` --> band能带数æ®å¤„ç† --> :guilabel:`bandplot.py` 脚本直接对wannieræ’å€¼èƒ½å¸¦ä½œå›¾ï¼Œè¯»å– :guilabel:`wannier.h5` å³å¯ã€‚ 也å¯ä½¿ç”¨ :guilabel:`bandcompare.py` 对wannieræ’值能带与DFT能带图对比,具体æ“ä½œè§ :doc:`/tools` 部分。能带对比效果图应如下所示: .. figure:: ./../imgs/phase4/wannier_band.png :width: 800px :align: center | .. note:: 1. **wannier è®¡ç®—ä¸æ”¯æŒæ‰“å¼€ pob ,且dft能带计算数(cal.totalBands)会éšç¨‹åºè°ƒç”¨æ ¸æ•°ï¼ˆcores)而改å˜ï¼Œå› æ¤å»ºè®® wannier 计算调用 cores 与 cal.totalBands 傿•°ä¿æŒä¸€è‡´ã€‚** 2. **当 wannier 函数的个数(wannier.functions)å°äºŽ cal.totalBands 时,wannier å‡½æ•°æœ€å¤§å±€åŸŸåŒ–çš„è¿‡ç¨‹éœ€è§£çº ç¼ ï¼Œæ¤æ—¶è‹¥ç”¨æˆ·æœªå®šä¹‰èƒ½é‡å†»ç»“窗å£ï¼ˆwannier.disFrozWinï¼‰ï¼Œç¨‹åºæ‰§è¡Œæå–默认Frozen Window进行计算。** 3. **若自定义Frozen Window,需确ä¿wannier.FrozWin 内所å«èƒ½å¸¦çš„æ•°é‡ä¸èƒ½å¤§äºŽ wannier.functions 的数é‡ï¼Œå¦åˆ™ç¨‹åºä¼šæŠ¥é”™ E4024ã€‚åŒæ—¶éœ€ç¡®ä¿çª—å£çš„åˆç†æ€§ï¼Œå¦åˆ™æ— 法得到好的拟åˆç»“果。** 4. **2023A版本 DS-PAW æš‚ä¸æ”¯æŒ spin 类型为 non-collinear çš„wannier计算。** | | refå‚考文献 ========================================================================== .. footbibliography::